sudo用户组的用户可以使用sudo以root权限运行命令。但是某些场景下可能要求用户可以执行部分命令,不能执行部分命令。这时可以通过配置sudo的默认安全策略插件sudoers来达到效果。
# 将用户移除sudo用户组(如果原来在的话) # 确认/etc/sudoers配置策略 # 如果没有改动过该文件,其大致如下: root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d
- 编辑用户安全策略配置
在/etc/sudoers.d/目录下建立与用户同名的策略文件,如:
visudo -f /etc/sudoers.d/test # 其中“test”为测试建立的用户名 # 期望用户test 可以以管理员权限执行/usr/bin、/bin下的所有命令,但是不能修改其他用户密码以及kill其他用户进程,可以配置如下: test ALL=/usr/bin/, !/usr/bin/passwd, /bin/, !/bin/kill # 测试一下,会发现passwd被阻止了: sudo passwd [sudo] password for test: Sorry, user test is not allowed to execute '/usr/bin/passwd' as root on zzz. # 在策略文件中配置:!/usr/bin/passwd user_name,该策略可以阻止修改特定用户的密码。可以得知,该策略可以阻止特定参数的命令