一、su
(1)su
***切换到root用户
***需要输入root密码
***代表使用non-login shell的变量文件读取方式来登录系统 (2)su -
***切换到root用户
***需要输入root密码
***代表使用login-shell的变量文件读取方式来登录系统
(3)su -l 用户名
***切换到指定的用户
***输入要切换到的用户的密码
***代表使用login-shell变量文件读取方式来登录系统
(4)exit
***退回到切换前的用户
二、sudo
(1)注意
***仅有/etc/sudoers文件内的用户才能够执行sudo命令
***系统默认的是仅有root用户可以执行sudo
***sudo命令并不是切换到指定的用户中,而是在当前用户中执行指定用户的命令
(2)命令
***sudo [-u 新用户账号] [-b] 命令
***[-u]后接欲切换的用户,若无此参数则代表切换的用户为root
***[-b]将后续的命令让系统自动执行,而不与目前的shell产生影响
(3)流程
***当用户执行sudo时,系统于/etc/sudoers文件中查找该用户是否有执行sudo的权限
***若用户具有执行sudo的权限,便让用户输入用户自己的密码来确认
***若密码输入成功,便开始进行sudo后续接的命令(但root执行sudo时不需要输入密码)
***若欲切换的身份与执行者身份相同,也不需要输入密码
(4)修改/etc/sudoers文件
《1》前提
除了root之外的其他账号,若想要使用sudo执行属于root的权限命令,则root需要先使用visudo去修改
/etc/sudoers,让该账号能够使用全部或部分的root命令功能。
《2》命令
***visudo
《3》单一用户
找到“root ALL = (ALL) ALL”这一行,然后仿照格式在下一行添加其他用户。
格式:
用户账号 登陆者的来源主机号 = (可切换的身份) 可执行的命令
root ALL = (ALL) ALL
注意:
ALL是特殊的关键字,代表任何身份、主机或命令的意思。
可执行命令必须使用绝对路径编写。
《4》利用用户组
找到"%wheel ALL = (ALL) ALL"这一行,将前面的“#”号去掉。
“%”代表后面接的是一个“用户组”之意。
然后使用usermod命令将用户添加到这个用户组中。
使任何加入wheel这个用户组的用户都能够使用sudo切换任何身份来操作命令。