Linux:使用visudo设置用户sudo权限

时间:2021-10-17 18:19:39

visudo

我们可以修改/etc/sudoers文件来设置用户的sudo权限,修改/etc/sudoers一定要使用visudo命令,它可以让我们比较安全的修改此文件。

visudo有以下特性:

  1. 锁定文件避免多个同时编辑
  2. 检查语法的完整性
  3. 检查解析错误,以避免用户错误输入

使用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