A 和 B 假如都是 sudo 组,那如何阻止 B 把 A 给踢出 sudo 组

2019-08-03 10:11:01 +08:00
 wikinee
总不能是先下手为强吧,这里的权限机制很困惑。。。
4787 次点击
所在节点    程序员
15 条回复
julyclyde
2019-08-03 10:28:04 +08:00
那当然是不能阻止的
iyaozhen
2019-08-03 10:37:46 +08:00
想起了大学宿舍群,4 个人都是管理员。
gam2046
2019-08-03 10:40:13 +08:00
sudo passwd

都可以修改 root 的密码,显然不能阻止 B 把 A 踢出。sudo 以后等同于 root 权限了
656002674
2019-08-03 10:59:29 +08:00
yankebupt
2019-08-03 11:01:31 +08:00
我还以为肯定有人会说放个暗桩,当检测到 A 不是 sudo 组时把 B 踢出 sudo 组同时把 A 加回来,没想到现在都这么和谐了么...
alphatoad
2019-08-03 11:04:44 +08:00
感觉会有 racing condition 啊
指令还在队列里,然后被 t 了
exip
2019-08-03 11:07:56 +08:00
是可以实现的,不过不太完美,对蓄意修改者还是无效,对一般用户来说没问题。
实施限制
可以对用户能够运行的命令实施限制。假设有一个名为 dataex 的组,其成员是 “ alpha ”、“ bravo ” 和 “ charlie ”。现在,已经允许这个组运行 sudo 命令 /usr/local/bin/mis_ext *,这里的星号代表传递给脚本的许多参数。但是,如果参数是 import,就不允许用户 “ charlie ” 执行此脚本。可以使用逻辑否 '!' 操作符设置这种条件。下面是在 sudoers 中的实现方法:
1 %dataex rs6000 = (dbmis) NOPASSWD: /usr/local/bin/mis_ext *
2 charlie rs6000 = (dbmis) NOPASSWD: !/usr/local/bin/mis_ext import

参考:https://www.ibm.com/developerworks/cn/aix/library/au-sudo/index.html
ryd994
2019-08-03 14:39:02 +08:00
@alphatoad 不会,sudo 只在开始时验证权限
比如你 sudo bash,那即使你被剔出 sudoer,这个 bash 还是有 root 权限
alphatoad
2019-08-03 15:09:46 +08:00
@ryd994 其实我想的更多的是 shell 在 execl 的时候的表现,个人认为这里不会有 racing condition
elikoi17
2019-08-03 16:19:35 +08:00
selinux ?
ibreaker
2019-08-03 18:00:40 +08:00
@exip 看你这字母解释法,是玩业余无线电的吗
starsriver
2019-08-03 19:53:32 +08:00
任何人都可以踢人。

记住 linux 的提示,权限越大责任越大。
exip
2019-08-03 20:41:33 +08:00
@ibreaker 你说的是这个吧,无线电中字母的读法。
A:ALFA  
B:BRAVO  
C:CHARLIE  
D:DELTA
E:ECHO
F:FOXTROT
G:GOLF
H:HOTEL
I:INDIA
J:JULIET
K:KILO
L:LIMA
M:MIKE
N:NOVEMBER
O:OSCAR
P:PAPA
Q:QUE B EC
R:ROMEO
S:SIERRA
T:TANGO
U:UNIFORM
V:VICTOR
W:WHISKEY
X:X-RAY
Y:YANKEE
Z:ZULO
wangguoqin1001
2019-08-05 03:36:08 +08:00
设定允许 /禁止 sudo 运行的命令,当然比较靠谱的就是把安全的命令穷举一下放在允许 sudo 执行的命令列表里面🤷‍♂️
no1xsyzy
2019-08-05 10:24:13 +08:00
你可以通过 visudo 限制 sudo 能够执行的命令。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/588712

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX