在通过sudo策略向非root用户执行更高权限的命令时是否可以避免sudo word这样的非root用户不应该知道他正在执行更高权限的命令以及sudo的使用可能很复杂。
实施例: 正常执行Sudo命令。
$ sudo -u root /usr/bin/tcpdump
非root用户应该执行如下的tcpdump。
$ tcpdump
提前致谢。
注意:我为非root用户定义了一个Sudo策略。因此,当非root用户执行tcpdump时,在后端它应该执行为 sudo -u root tcpdump。
答案 0 :(得分:4)
是。这是可能的。
你应该:
1-创建一个新的特定新组,其中包含一些用户:
groupadd nonroot
2-将特权用户添加到该群组:
2.1-编辑/ etc / group:
vim /etc/group
2.2-找到新创建的组的行。看起来应该是这样的:
nonroot:x:127:
2.3-最后,添加您的特权用户:
nonroot:x:127:user1,user2
3-更改二进制文件组:
chgrp nonroot /usr/bin/tcpdump
4-为二进制文件提供组执行权限:
chmod g+x /usr/bin/tcpdump
你必须要知道,如果二进制文件读取,写入或执行user1没有权限的文件,你将以相同的方式修改它们。
如果您无法更改二进制文件组,请查看post bellow的正确答案,这是一种类似的方式:
Allow users of a certain group to run a command without sudo
希望它有所帮助。
注意:不同的linux / unix发行版之间的命令可能不同。
答案 1 :(得分:0)
我至少可以看到两种可能性:
将其包装在一个脚本中(也可以使用别名,但是如果用户可以使用不同的shell或者只是手动启动它们,那么它可能会变成一个地狱之地)
在tcpdump上设置suid位,但这意味着每个可以调用tcpdump的人都会以所有者的身份执行此操作。