visudo
我们可以修改/etc/sudoers文件来设置用户的sudo权限,修改/etc/sudoers一定要使用visudo命令,它可以让我们比较安全的修改此文件。
visudo有以下特性:
- 锁定文件避免多个同时编辑
- 检查语法的完整性
- 检查解析错误,以避免用户错误输入
使用root的权限直接执行visudo,打开suders文件
$visudo
注意:这里不需要输入shduers文件的路径,默认为/etc/sudoers。可以使用-f指定sudoers文件。
设置sudo权限
语法格式
用户 主机=(用户身份) 命令列表
用户:用户可以是直接用户名(如:root),也可以是以%开头表示的用户组(如:%wheel)。
主机:使用Host_Alias定义主机的别名
命令列表:使用Cmnd_Alias定义命令别名,多个命令使用逗号隔开
用法
找到下面这一行
root ALL=(ALL) ALL
1、允许用户在所有主机上执行所有命令的权限
test ALL=(ALL) ALL
2、运行用户在指定主机上执行特定命令的权限
Host_Alias HOST1 = 192.168.1.1
Cmnd_Alias MY_CMD = /bin/mycmd
test HOST1=(ALL) MY_CMD
意思是:允许test在HOST1表示的主机上执行MY_CMD表示的命令
3、设置组执行所有命令的权限
%mygroup ALL= (ALL) ALL
4、设置组无需密码执行所有命令的权限
%mygroup ALL=(ALL) NOPASSWD: ALL
wheel
在Linux有一个特殊的组wheel,它允许此组的用户执行所有命令的权限。
使用visudo打开sudoers文件,找到
%wheel ALL=(ALL) ALL
如果此行被注释掉,把#去掉,然后把用户添加到此组即可。
usermod -aG wheel myuser