su和sudo

简介: su和sudo是我们常常需要用到的Linux命令,下面就将一下该命令怎么具体怎么使用,区别在哪

1、su命令
su/su - username:切换用户,如果从root用户切换到切换用户,不需要其他用户的密码;username为空,默认为root用户,从普通用户切换到root用户,需要输入root用户的密码

login shell和non-login shell:
login shell是说在取得bash时需要完整的登陆流程,每个用户登陆取得bash的时候都会读取这个文件etc/profile
non-login shell就是取得bash不需要重复登录,就像你在桌面视图中用ctrl+alt+T启动的shell输入窗口就是non-login shell。还有就是你在shell窗口直接su切换的用户,都属于non-login shell。

su/su-后的区别:
1、如果直接su的话,不会读取/etc/profile的,所以你的环境变量PATH,MAIL、pwd等是不会改 变的,此时是non-login shell,
2、如果想读取/etc/profile的话我们需要用su -,相当于以新用户重新启动,是login shell执行命令会查找新用户的环境变量
2、sudo命令
每次需要切换到root用户下执行命令时,都需要输入密码,不太安全;并且每次需要在root用户执行命令时,都需要先切换到root用户再执行命令,有时候可能只需要执行一次命令,解决方法:sudo

sudo:可以切换到其他用户执行命令,执行完之后自动切回原用户,并且不需要root用户的密码,只需要当前用户的密码

但是并不是所有用户都有运行sudo的权限,想要运行sudo,需要配置/etc/sudoers文件
[lxx2@172-16-8-141 /home/lxx2]
$sudo su -
[sudo] password for lxx2:
lxx2 is not in the sudoers file. This incident will be reported.

etc/sudoers文件可读但不可修改,因为sudoe这个文件是由语法构成的,仅能通过root用户下执行visudo命令修改
1、对单个用户配置sudo权限
只需要在/etc/sudoers中添加一行:Oracle ALL=(ALL) ALL
第一列表示需要开启sudo权限的用户;第二列表示该用户的主机名;第三列表示sudo默认切换到哪个用户上执行命令,只能切换到root用户;第四列表示sudo可运行的命令,就是限定该用户的执行权限
2、对多个用户配置sudo权限
1、可以照方面的方法,一行行配置;
2、也可以用用户组,将需要运行sudo的用户都添加到一个组里,可以添加到已经存在的组,如%wheel,也可以自定义,一个组里用户运行sudo可执行的命令时一样的
自定义:
3、通过别名设置
在sudoers文件里有一些别名,User_Alias表示具有sudo权限的用户列表,就是第一列參数。Host_Alias表示主机的列表。就是第二列參数。Cmnd_Alias表示同意运行命令的列表,就是第四列參数。还有个Runas_Alias。我初始的sudoers里是没有的,这个表示用户以什么身份登录。也就是第三列參数。
User_Alias LUXXUSERS = 1, manager2, manager3

   Cmnd_Alias QUANXIAN = !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
   LXXUSERS   ALL=(root)    QUANXIAN

权限:有时不需要当前用户切换到其他用户执行所有命令,可以限定执行的命令
ALL表示有切换到的用户的所有权限
如/usr/bin/passwd ,就是有修改用户密码的权限,
!usr/bin/passwd root就是没有修改root密码的权限,
/bin/su - 表示有切换到除原用户外其他所有用户并且不返回原用户的权限,相当于切换到到root用户执行su -/su - username

总结;sudo 能保护目标用户的密码不外流。帮root管理系统时,su是把root全部权利交给用户,sudo可以对用户赋予root用户的一部分权利,使系统更安全,并且分工明确

相关文章
|
7月前
|
Linux Shell 数据安全/隐私保护
linux命令之sudo/su
linux命令之sudo/su
128 7
|
Ubuntu 安全 Linux
su,su -,su - root,sudo,sudo -i,sudo su - 有何不同,在ubuntu和centos上用法有什么异同?
sudo -i命令:在Ubuntu和CentOS中,sudo -i命令可以启动一个新的shell会话,并将环境变量设置为root用户的环境变量。在使用该命令时同样需要输入当前用户的密码进行身份验证。
257 0
|
安全 Shell 开发工具
su 和su - 有何区别?sudo和su有何区别?
在实际工作中,曾经遇到切换用户环境变量无法加载的问题。其原因就是对su 和su -的区别认识有问题。
323 0
|
Ubuntu 数据安全/隐私保护
UBUNTU安装后的root/su密码问题
UBUNTU安装后的root/su密码问题
438 0
|
安全 Linux 数据安全/隐私保护
Linux中su、su -和sudo的区别
Linux中su、su -和sudo的区别
125 0
|
Ubuntu Linux 数据安全/隐私保护
Linux中 sudo su 和 su 区别
Linux中 sudo su 和 su 区别
134 0
|
Shell 数据安全/隐私保护
3.7 su命令 3.8 sudo命令 3.9 限制root远程登录
3.7 su命令 3.8 sudo命令 3.9 限制root远程登录   su命令 切换用户 [root@centos_1 ~]# su - xiaobo   [root@centos_1 ~]# su - xiaobo 最后一次失败的登录:二 11月 21 01:43:41 CST 2017pts/0 上 最有一次成功登录后有 1 次失败的登录尝试。
1631 0
|
Shell 数据安全/隐私保护 数据库
|
数据安全/隐私保护 网络安全 Shell
|
安全 数据安全/隐私保护