linux sudoers 无法在命令“su”上运行

linux sudoers 无法在命令“su”上运行

我想禁用命令sudosu组中的用户staff

所以我把它放进去了/etc/sudoers

%staff ALL=ALL, !/usr/bin/sudo,!/usr/bin/su

但我发现,只对组中的用户sudo有效,仍然有效。sustaff

我也尝试过这个:

%staff ALL=ALL, !/usr/bin/sudo
%staff ALL=ALL, !/usr/bin/su

仍然适用于sudo但不是su

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

答案1

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

答案2

您实际上无法“禁止”使用su。但是,为了使用它来获取 root 权限,您需要 root 的密码。

相反,sudo允许您仅使用自己的凭据即可获得 root 访问权限。因此,您需要将此限制为仅可信任的用户(此处:组中的人员staff)。

相关内容