/etc/sudoers
## Allow root to run any commands anywhere root ALL=(ALL) ALL #第一个root是用户账号 第二列的ALL是登陆者的来源主机名,第三列=(ALL)是代表可以切换身份,第四列ALL是可执行的命令.
如果当前的普用户ok,能执行root的所有操作,那么我可要加一行ok ALL=(ALL) ALL 那么如果有很多人需要执行sudo,那不是要写很多行,所有就有了用户组了!
## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL #%wheel代表wheel用户组,如果我们需要执行root所有操作的用户都加入到whell用户组,或者我们自定义的用户组,然后添加一行代码,就行了
限制用户sudo的权限:
比如说我只要用户ok去管理密码,不让他有别的权限:
只要在/etc/sudoers增加下面一行: ok ALL=(root) /usr/bin/passwd
sudo就是可以用root的身份运行配置的命令:
ok ALL=(root) NOPASSWD:/usr/bin/passwd,NOPASSWD:/bin/su,NOPASSWD:/usr/bin/rz
上面的意思就是普通用户ok可以用root的身份来运行/usr/bin/passwd,/bin/su,/usr/bin/rz,并且是免输入密码
!去掉某个命令:
root ALL=(ALL) ALL ok ALL=(root) NOPASSWD:/usr/bin/passwd,NOPASSWD:!/bin/su,NOPASSWD:/usr/bin/rz #去掉/bin/su这个命
还有一点要注意就是执行配匹配规则是从后到前的,所以后面执行:
## Allow root to run any commands anywhere root ALL=(ALL) ALL ok ALL=(root) NOPASSWD:/usr/bin/*,NOPASSWD:!/bin/su,NOPASSWD:/sbin/*,NOPASSWD:/bin/* 可以看到没有说权限不足: [ok@xtrabackup ~]$ sudo su [root@xtrabackup ok]# 现在改变一下位置再试一下: ## Allow root to run any commands anywhere root ALL=(ALL) ALL ok ALL=(root) NOPASSWD:/usr/bin/*,NOPASSWD:/sbin/*,NOPASSWD:/bin/*,NOPASSWD:!/bin/su 发现显示报错: [ok@xtrabackup ~]$ sudo su Sorry, user ok is not allowed to execute '/bin/su' as root on xtrabackup.