1. su
普通用户执行 su 命令的时候,会索要root用户的密码切换到root用户。
root用户拥有最高权限,就可以为所欲为的做了。
su命令默认是请求切换到root用户,如果使用 su 用户 方式则可以切换到指定用户。
注意:su并不会真正切换用户身份,也就是环境变量不变;只有 su - 用户名 才会真正的切换环境变量,也就相当于重新登陆。
2. sudo
sudo的作用就是将root用户的权限下放给普通用户,允许普通用户也有更高的权限做事。
普通用户的权限在配置文件 /etc/sudoers 下进行配置,当然只有root用户可以维护这个文件。
执行sudo命令后,会查询 sudoers 配置文件此用户是否有相对应的权限。如果有权限就会索要当前用户的密码,将当前用户身份转成root用户。执行完命令后自动退出root用户身份变成普通用户身份。
普通用户可以通过 sudo -l 命令查询当前用户有哪些命令是有权限的。
3. 配置普通用户权限
将当前用户身份切换到root用户。
执行命令 visudo ,确保手动配置的用户权限语句格式正确。
找到 ## Allow root to run any commands anywhere 这一行,在root的下一行进行配置。
语法是:用户 主机地址=(用户能够以何种身份来执行命令) 能执行"命令表"
用户:就是要配置权限的用户,由于用户组和用户名可以重名,所以配置组的时候需要用%开头。
主机地址:做多系统部署的时候需要用,ALL代表全部主机,如果只是本地用,可以用localhost。
括号内:指名使用sudo的用户能够以何种身份来执行命令,ALL代表所有用户。
命令表:使用英文逗号分隔开的命令表,表示用户可以用括号内的身份执行的命令,命令表中的命令需要使用绝对路径,ALL代表所有命令都可以使用。详细的例如:/bin/rm,/usr/bin/find 。