无法限制用户可以在启用 devtoolset-3 的 shell 中以 root 身份运行的命令

无法限制用户可以在启用 devtoolset-3 的 shell 中以 root 身份运行的命令

我们在 RHEL6.6 上使用 devtoolset-3。用户运行 scl enable devtoolset-3 bash 以便访问包含所有 devtoolset-3 工具的环境。

我想允许用户以 root 身份运行命令的子集。执行此操作的正常方法是将 sudo 与 sudoers 文件一起使用,该文件包含命令别名以及您希望用户能够以 root 身份执行的命令列表。

我尝试过各种组合,但无法想出正确的食谱。

以下是我尝试过的一些事情:

尝试1:

我创建一个命令别名:

Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/pkill <process name>

然后允许 myGroup 的成员无需密码即可执行这些命令

%myGroup  ALL=(ALL) NOPASSWD:SETENT: ALLOWEDCOMMANDS

通过该设置,如果我尝试运行 sudo pkill 我得到:

抱歉,不允许用户以 root 身份执行 '/usr/bin/scl enable devtoolset-3 'pkill' '''

尝试2:

我修改了 sudoers 文件以获得完整的命令:

Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/scl enable devtoolset-3 pkill <some_process_name>

但我仍然遇到同样的错误。

尝试3:

如果我将其列为/usr/bin/scl允许的命令,则允许用户在启用 scl 的环境中以 root 身份执行任何命令。

谁能想出一种可靠的方法来允许用户在启用 scl 的 shell 中运行特定的命令列表?

答案1

以防万一其他人遇到这个问题,我想我应该在这里发布从红帽支持那里收到的答案。

事实证明,devtoolset-3 版本的 sudo 不能很好地发挥您在 /etc/sudoers 中指定的命令别名的格式。

在启用 devtoolset-3 的 shell 中,您可以使用别名 sudo=/usr/bin/sudo。然后您的用户将运行标准 sudo ,它可以正确处理命令别名。

使用该别名后,一切都会按预期进行。

相关内容