linux sudoers 不适用于命令“su”

Jos*_*Lee 2 linux sudo permissions sudoers

我想禁用组中用户的命令sudo和。sustaff

所以我把这个放进去/etc/sudoers

%staff ALL=ALL, !/usr/bin/sudo,!/usr/bin/su
Run Code Online (Sandbox Code Playgroud)

但我发现,只有sudo工作,su仍然适用于组中的用户staff

我也尝试过这个:

%staff ALL=ALL, !/usr/bin/sudo
%staff ALL=ALL, !/usr/bin/su
Run Code Online (Sandbox Code Playgroud)

尽管如此,适用于sudo但不适用su

我怎样才能解决这个问题?

Att*_*tie 6

su不是sudo……它们是两个独立的工具,具有非常不同的行为。

su不会受到影响,/etc/sudoers因为该文件与其无关。

  • su- 需要 root 密码,并允许用户以“root”身份进行身份验证,就像他们尝试使用用户名登录一样root
  • sudo- 允许用户证明自己的身份(例如:通过重新输入自己的密码)并获得特定任务的 root 权限(或其他用户的权限)。

如果您想要“禁用su(可能不建议),那么您需要删除其执行标志,或将其从系统中删除。

为什么有su问题?您的root帐户有密码吗?(我不知道,但如果不知道,则su可能不会提示进行身份验证)。


为了清楚起见,/etc/sudoers影响使用 运行的命令的行为sudo,例如:

  • sudo ${cmd}
  • sudo dd ...
  • sudo su- 你用什么来阻止%staff ALL=ALL, !/usr/bin/su
  • sudo sudo ...- 你用什么来阻止%staff ALL=ALL, !/usr/bin/sudo