Linux su 和 sudo

su命令主要用来切换用户,也可以使用使用某个用户来运行某条命令。

su [-lm] [-c 命令] [username]

比如我们要切换到root用户,我们可以使用su -,使用'-'的意思是使用root的环境变量(使用login-shell变量文件),然后提示输入root密码,就可以切换到root用户了,也可以切换到其他用户,即指定username;

注意:切换到某个用户或者以某个用户的权限来运行某条命令,都必须使用相应用户的口令

sudo主要用来以某个用户的身份来运行某条命令。相对于su命令需要知道新切换用户的密码sudo命令的执行仅需要自己的密码即可,甚至可以设置不需要密码即可执行。

并非所有人都能够执行sudo,而是仅有/etc/sudoers内的用户才能够执行sudo这个命令。必须使用visudo命令才能编辑/etc/sudoers配置文件。

sudo [-b] [-u 新用户账号]

sudo 的执行流程:
1)当用户执行sudo时,系统于/etc/sudoers文件中查找该用户是否有执行sudo的权限。

2)若用户具有可执行sudo的权限后,便让用户输入用户自己的密码来确认(也可以设置为不需要密码)。

3)若密码输入成功,便开始进行sudo后续接的命令(但root执行sudo时不需要输入密码)。

4)若欲切换的身份与执行身份相同,那也不需要密码。

使用sudo的好处:不需要知道root的密码也可以使用使用root的权限来运行命令,而使用su则必须要知道root的密码。

root用户可以使用visudo命令来设置/etc/sudoers。

你可能感兴趣的:(Linux su 和 sudo)