我在我的 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
不同的名称创建副本,将其复制到主机上并设置适当的权限等。