我想禁用命令sudo
和su
组中的用户staff
。
所以我把它放进去了/etc/sudoers
:
%staff ALL=ALL, !/usr/bin/sudo,!/usr/bin/su
但我发现,只对组中的用户sudo
有效,仍然有效。su
staff
我也尝试过这个:
%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
)。