visudo深入理解,分配角色!
visudo 查看 :主机别名
//用的不多,只有多主机使用一个配置文件的时候才用的到,如果设置成 root FILSERVERS=(ALL) ALL ,意思是只允许root用户从fs1和fs2主机登陆才能使用sudo
visudo 查看 :用户别名
对组进行授权必须加%标识。
ADMINS ALL=(ALL) ALL 表示ADMINS别名组里(jsmith,mken,和组roupname)这些用户可以拥有sudo命令权限
visudo查看:用户身份别名
luoqi01 ALL=(OP) ALL ,代表luoqi01用sudo的命令执行身份都是以OP对应的root身份执行
visudo查看:命令别名
luoqi01 ALL=(ALL) NETWORKING ,代表luoqi01用sudo可以执行的命令为NETWORKING别名里面的
小结
Host_Alias AAA luoqi01 AAA=(ALL) NETWORKING //只有luoqi01用户通过主机AAA别名里包含的主机登陆之后才能使用sudo授权的命令
User_Alias BBB BBB ALL=(ALL) NETWORKING //只有BBB别名里用户才能使用sudo授权的命令
Cmnd_Alias CCC luoqi01 ALL=(ALL) CCC //luoqi01用户可以从任何主机登陆使用sudo命令仅包含CCC别名下的命令
Runas_Alias DDD luoqi01 ALL=(DDD) NETWORKING //luoqi01用户可以从任何主机登陆,使用sudo授权命令时候的身份是DDD别名里包含的身份
生产实例
需求:公司有开发、运维、网络3类人需要分权限,如何设计?
命令权限(Cmnd_Alias) 身份权限(Runas_Alias)
设计权限别名内容,以供上面使用
设计完成,开始真正的应用权限!思路:
开发:
运维: //注意命令之间不仅有,还有空格
网络:
visudo -c 检查一下语法有无问题。
特殊用法:
1、远程sudo 失败,原因ssh 要加 -t参数
2、要不就注释掉
注意:
!/usr/bin/passwd root //禁止修改root密码
记录下sudo的操作,审计!别人干坏事可以被记录下来
这样你下次sudo所有操作都在 sudo.log里面