sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
sudo命令的配置文件位于 /etc/sudoers
当然也可以将不同的用户以不同文件进行分别配置sudo权限,这样便于批量控制 /etc/sudoers.d/user
我分别拿几个配置来进行讲解
1、给用户分配sudo权限
下面的一行配置是说,配置用户wanglei的sudo权限
1、第一个ALL代表可以执行sudo命令的主机(这里表示任何主机)
2、第二个ALL表示执行sudo的时候以哪个用户的身份执行(这里表示任何用户)
3、第三个ALL表示sudo可以执行的命令(ALL表示所有)
wanglei ALL=(ALL) ALL
2、给用户组分配sudo权限
下面的一行配置是说,配置用户组sudo的sudo权限
至于哪些用户可以执行权限,则可以grep sudo /etc/group进行查看,用户只要被添加进改组,即可执行
1、ubuntu-1代表只有在主机ubuntu-1上面可以执行后面配置的sudo权限
2、(ALL)表示执行sudo的时候以哪个用户的身份执行(这里表示任何用户)
3、ALL表示sudo可以执行的命令(ALL表示所有)
%sudo ubuntu-1=(ALL) ALL
3、给用户test分配sudo权限,不输入密码即可执行sudo权限,并且限制可以执行的命令
下面的一行配置是说,配置用户test的sudo权限
1、第一个ALL代表可以执行sudo命令的主机(这里表示任何主机)
2、第二个ALL表示执行sudo的时候以哪个用户的身份执行(这里表示任何用户)
3、NOPASSWD:/bin/systemctl,/usr/bin/touch表示用户可以通过sudo来执行定义的两条命令,那么它不仅可以重启服务,而且也可以touch在任何目录下创建文件
test ALL=(ALL) NOPASSWD:/bin/systemctl,/usr/bin/touch
或者
test ALL=(ALL) NOPASSWD:ALL