为什么 NOEXEC 不阻止指定程序运行?

为什么 NOEXEC 不阻止指定程序运行?

我在我的 CentOS6.4 中尝试过 NOEXEC 我编辑了我的/etc/sudo.conf文件,如下所示:

Path noexec /usr/libexec/sudo_noexec.so

/etc/sudoers

ssh ALL=(root) ALL,NOEXEC:/usr/bin/passwd

我确信 noexec 的 lib 存在于正确的路径中,但作为用户 ssh 仍然可以更改密码。 NOEXEC没有产生任何效果,有人可以给一些建议吗?

答案1

NOEXEC标记不会阻止程序执行。它阻止列出的程序执行任何其他程序。从曼苏多尔斯:

aaron  shanty = NOEXEC: /usr/bin/more, /usr/bin/vi

这允许用户 aaron 在启用 noexec 的情况下运行 /usr/bin/more 和 /usr/bin/vi 。这将阻止这两个命令执行其他命令(例如 shell)。
如果您不确定您的系统是否能够支持 noexec,您可以随时尝试并检查启用 noexec 时 shell 转义是否有效。

如果您想阻止用户执行特定命令,请查看!,例如:

ssh ALL=(root) ALL, !/usr/bin/passwd

请注意,这一行没有多大帮助,因为可以使用/usr/bin/passwd不同的名称创建副本,将其复制到主机上并设置适当的权限等。

相关内容