Sudoers 黑名单

sag*_*gar 7 sudo sudoedit

我们需要在 Linux 上的 sudoers 文件中添加几个用户。除了以下内容之外,他们应该能够做任何 root 可以做的事情:

  • 不应修改、读取、删除 /nfsshare/config
  • 不应修改、读取、删除 /etc/passwd
  • 不应该安装任何东西
  • 不应该更改root密码
  • 不应编辑/etc/sudoers或运行visudo以添加其他用户

这可能吗?

mau*_*wns 24

我基本上同意 Wissam Al-Roujoulah 的观点。

我们需要在 sudoers 文件中添加几个用户

你,真的需要这样做吗?也许还有其他方法,使用acl或常规 UNIX 权限。

正如 Wissam Al-Roujoulah 已经指出的那样,试图将某些命令“列入黑名单”实际上是一个非常糟糕的主意(从下面阅读man sudoers,强调我的):

但是请注意,使用 '!' 结合内置
 ALL 别名允许用户很少运行“除少数之外的所有”命令
 按预期工作

相反,您可以指定一个“白名单”,例如允许用户运行的实际命令。像这样的东西:

user1 ALL=/sbin/shutdown
Run Code Online (Sandbox Code Playgroud)

以上将允许user1关闭。您可以在逗号分隔列表中添加更多命令。

在此处阅读更多相关信息。

  • 我目前最喜欢的:如果“命令”被列入黑名单,只需添加另一个`sudo`,它就会起作用:`sudo sudo command`。 (16认同)
  • @Rhymoid:不要忘记`sudo gcc my-evil-file.c; 须藤a.out`。起泡、冲洗、用 Python、Perl、Ruby、Bash 等重复。 (6认同)
  • 为了说明尝试禁用特定命令是多么没有意义:您可以尝试阻止 `shutdown`,但是如果您忘记在 `init`/`systemctl`(/`reboot`) 中阻止类似的功能,或者仍然允许 `sudo su -` 或 `sudo sh` 或 `sudo script_that_invokes_shutdown.sh` 被遗漏了,你真的没有完成任何事情。 (3认同)

Wis*_*lah 12

我想这几乎是不可能的,因为您必须阻止用户使用任何编辑器,即使这不会阻止他,因为他可以安装另一个编辑器或将二进制文件移动到任何其他位置并使用它。

要点是您不能添加用户sudoers并授予他所有权限,但有一些权限。

你必须以相反的方式去做。