/etc/sudoers 配置

/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.
原文地址:https://www.cnblogs.com/bass6/p/6835487.html