/etc/sudoers 配置

/etc/sudoers

1
2
3
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
#第一个root是用户账号 第二列的ALL是登陆者的来源主机名,第三列=(ALL)是代表可以切换身份,第四列ALL是可执行的命令.

 如果当前的普用户ok,能执行root的所有操作,那么我可要加一行ok ALL=(ALL) ALL 那么如果有很多人需要执行sudo,那不是要写很多行,所有就有了用户组了!

1
2
3
## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
#%wheel代表wheel用户组,如果我们需要执行root所有操作的用户都加入到whell用户组,或者我们自定义的用户组,然后添加一行代码,就行了

 限制用户sudo的权限:

比如说我只要用户ok去管理密码,不让他有别的权限:

1
2
只要在/etc/sudoers增加下面一行:
ok ALL=(root) /usr/bin/passwd

sudo就是可以用root的身份运行配置的命令:

1
ok      ALL=(root) NOPASSWD:/usr/bin/passwd,NOPASSWD:/bin/su,NOPASSWD:/usr/bin/rz

上面的意思就是普通用户ok可以用root的身份来运行/usr/bin/passwd,/bin/su,/usr/bin/rz,并且是免输入密码

!去掉某个命令:

1
2
3
root    ALL=(ALL)       ALL
ok      ALL=(root) NOPASSWD:/usr/bin/passwd,NOPASSWD:!/bin/su,NOPASSWD:/usr/bin/rz
#去掉/bin/su这个命

 还有一点要注意就是执行配匹配规则是从后到前的,所以后面执行:

1
2
3
4
5
6
7
8
9
10
11
12
13
## 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.

 

posted @   bass  阅读(1039)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2016-05-10 Nginx(PHP/fastcgi)的PATH_INFO问题
2016-05-10 show processlist
点击右上角即可分享
微信分享提示