[Linux] 用户切换 - su和sudo

Linux的用户切换可以通过su和sudo这两个命令,这两个命令的使用场景是不一样的。

su

如果你当前的身份是root,则可以通过su命令切换到其它任何用户(无需密码),如下所示:
[root@lx200 ~]# su - oracle
[oracle@lx200 ~ ]$ 
如果你当前的身份不是root(即普通用户),想通过su切换成root,则必须输入root的密码:
[oracle@lx15 ~ ]$ su -
Password: 
[root@lx15 ~ ]# 
当我们的Linux是多人管理时,如果通过su切换root,则每个人都需要知道root密码,这非常不安全,因此su这种方式虽然简单,但实际使用中很少使用。

sudo

sudo可以让普通用户在不需要知道root密码的情况下切换成root用户,首先我们需要通过配置/etc/sudoers,如下所示:
Defaults visiblepw
User_Alias ADMIN = root,admin
ADMIN   ALL=(ALL) NOPASSWD: ALL
首先,我们定义了一个用户组(注意:用户组名必须大写),该用户组包含root和admin用户
这个文件最重要的是第三行,下面分别解释它的意思:
1)第1列:用户账号,表示哪个账号可以使用sudo这个命令
2)第2列:限制登录这的来源主机名,ALL表示不做限制
3)第3列:可切换的身份,ALL表示可以切换成任何身份,NOPASSWD表示免密码输入(如果没有NOPASSWD,则每次切换都要输入自己的密码)
4)第4列:可执行的命令,ALL表示所有命令,如果要对命令进行限制,可以采用如下定义:
zabbix  ALL=(ALL) NOPASSWD: /sbin/fuser, /usr/sbin/lsof, /usr/sbin/dmidecode, /sbin/mii-tool, /usr/sbin/iptstate
注意:不要通过vi直接编辑/etc/sudoers,应该通过执行visudo命令编辑该文件,因为在结束离开时,系统会去检查/etc/sudoers的语法。

通过上面的配置,admin用户就可以通过执行sudo su - 命令免密码切换至root,是不是很方便呢。


你可能感兴趣的:(Linux,Linux运维之道)