sudo的安全策略:阻止/允许用户执行特定命令

#新建用户
#按照提示操作
adduser shi

#安装sudo
apt-get update
apt-get install sudo -y

#配置sudo
#在/etc/sudoers.d/目录下建立与用户同名的策略文件
visudo -f /etc/sudoers.d/shi #其中“shi”为测试建立的用户名

#比如,我们期望用户test 可以以管理员权限执行/usr/bin、/bin下的所有命令,但是不能修改其他用户密码以及kill其他用户进程,可以配置如下
shi ALL=/usr/bin/, !/usr/bin/passwd, /bin/, !/bin/kill

#保存

测试一下,会发现passwd被阻止了:

$ sudo passwd
[sudo] password for shi: 
Sorry, user shi is not allowed to execute '/usr/bin/passwd' 

在策略文件中配置:!/usr/bin/passwd user_name,该策略可以阻止修改特定用户的密码。也可以得知,该策略可以阻止特定参数的命令

这里还有一个隐患,就是普通用户可以通过su root命令还切换到root用户,所以还要禁止普通用户使用su命令

禁止普通用户使用su

修改/etc/pam.d/su,打开下面这行的注释,如果没有就在最后添加
#auth required pam_wheel.so use_uid

修改/etc/login.defs,在文件末添加一行
SU_WHEEL_ONLY yes


参考文章:
https://blog.csdn.net/lxbwolf/article/details/72636672
https://blog.csdn.net/saga1979/article/details/87929605
https://blog.csdn.net/a19881029/article/details/18730671
https://s.v2ex.com/t/588712

标签: none

评论已关闭