user1 ALL=(root)NOPASSWD:Cmnd_Alias
ALL 表示默认所有主机,这是集群环境下用的,按默认写就行了
NOPASSWD:表示不用输入密码就可以执行sudo
Cmnd_Alias : 命令集的别名
通配符和取消命令
例子: papi ALL=/usr/sbin/*,/sbin/*,!/usr/sbin/fdisk
用例子2来说明通配符*的用法, 以及命令前面加上!号表示取消该命令。
该例子的意思是: 用户papi在所有可能出现的主机上, 能够运行目录/usr/sbin和/sbin下所有的程序, 但fdisk除外.
黑名单模式,配置示例
Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp ,/bin/umask Cmnd_Alias USERMP = /sbin/useradd, /sbin/adduser, /sbin/usermod, /sbin/userdel Cmnd_Alias GROUPMP = /sbin/groupadd, /sbin/groupdel, /sbin/groupmod, /sbin/gpasswd Cmnd_Alias EDITOR = /bin/vi, /bin/vim, /usr/bin/vi, /usr/bin/vim
Cmnd_Alias PASSWDCHG = /usr/bin/passwd [A-z]*, /usr/bin/passwd "" admin1,admin2 ALL=(root)NOPASSWD:ALL,!/usr/bin/su [A-z]* user1,user2 ALL=(root) ALL,!/usr/bin/su *,!PASSWDCHG,!USERMP,!GROUPMP,!DELEGATING,!EDITOR
user1,user2 执行sudo的限制
1. 不能更改其他用户的密码,只能更改自己的, 不允许更改root的密码
2. 不能切换到其他用户,不能用su
3. 不能修改/etc/sudoers,提升自己的权限
4. 不能执行用户管理和组管理的命令
5. 不能修改其他用户的文件ACL
6. 不允许使用vi,vim修改系统文件,比如passwd,shadow
参考链接:
1. sudo 命令情景分析
2. 企业生产环境用户sudo权限集中管理项目方案案例
没有评论:
发表评论