“sudo”是否以任何方式依赖于“su”?

Kar*_*hik 7 su sudo

我想阻止用户使用该su命令,因此我在/etc/sudoers文件中阻止了该命令,如下所示:

%group ALL=(ALL:ALL) NOPASSWD:!/bin/su
Run Code Online (Sandbox Code Playgroud)

但是使用 中的这条规则sudoers,他们无法执行sudo <command>命令,从而导致错误:

Sorry, user xxxx is not allowed to execute 'command' as root on <host>
Run Code Online (Sandbox Code Playgroud)

有没有程序sudo依赖的方法su

Ste*_*itt 23

sudo不\xe2\x80\x99t依赖su.

\n

您的设置会阻止用户运行任何内容,因为它不会\xe2\x80\x99 授予任何内容:它只会阻止用户使用/bin/su. 你\xe2\x80\x99d需要NOPASSWD: ALL, !/bin/su或类似的东西。

\n

但请注意,/bin/su以这种方式拒绝不会\xe2\x80\x99 阻止用户复制到su其他地方并运行副本。参见中的相关讨论man sudoers

\n

  • 即使 su 被拒绝,具有 sudo 权限的用户也可以通过许多其他漏洞获得 root 访问权限。`sudo sudo`、`sudo bash`、`sudo vi`、`sudo less`、`sudo chmod`...... (9认同)
  • @symcbean:`sudo cp $HOME/vmlinuz /boot/vmlinuz` (5认同)
  • @symcbean 或只是“sudo -s”。 (4认同)
  • @Barmar 是的,“sudo su”会很奇怪,但这个习语实际上是“sudo su -”,它的流行是当之无愧的。这几乎是一个真正的登录(所有启动脚本、登录 shell 等),并且当“sudo -i”不存在时,它是一个有用的速记。`sudo -s` 的行为完全不同。 (3认同)
  • @roaima 考虑到意图是“ALL=(ALL:ALL)”,我认为可以安全地假设用户已经具有 root 访问权限。 (2认同)