如何避免sudo字,用于由非root用户执行更高级的特权命令

时间:2016-06-24 04:11:57

标签: linux bash sudo sudoers

在通过sudo策略向非root用户执行更高权限的命令时是否可以避免sudo word这样的非root用户不应该知道他正在执行更高权限的命令以及sudo的使用可能很复杂。

实施例: 正常执行Sudo命令。

$ sudo -u root /usr/bin/tcpdump

非root用户应该执行如下的tcpdump。

$ tcpdump

提前致谢。

注意:我为非root用户定义了一个Sudo策略。因此,当非root用户执行tcpdump时,在后端它应该执行为 sudo -u root tcpdump。

2 个答案:

答案 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)

我至少可以看到两种可能性:

  1. 将其包装在一个脚本中(也可以使用别名,但是如果用户可以使用不同的shell或者只是手动启动它们,那么它可能会变成一个地狱之地)

  2. 在tcpdump上设置suid位,但这意味着每个可以调用tcpdump的人都会以所有者的身份执行此操作。