我们需要在 Linux 上的 sudoers 文件中添加一些用户。他们应该能够执行 root 可以执行的任何操作,但以下内容除外:
- 不应修改、读取、删除
/nfsshare/config
- 不应修改、读取、删除
/etc/passwd
- 不应该安装任何东西
- 不应更改 root 密码
- 不应编辑
/etc/sudoers
或运行visudo
以添加其他用户
这可能吗?
答案1
在这一点上,我基本上同意 Wissam Al-Roujoulah 的观点。
我们需要向 sudoers 文件添加一些用户
你,真的需要这样做吗?也许还有其他方法,使用acl
或常规 UNIX 权限。
正如 Wissam Al-Roujoulah 已经指出的那样,尝试将某些命令“列入黑名单”实际上是一个非常糟糕的主意(请阅读下文man sudoers
,重点是我的):
但请注意,使用“!”与内置的 所有别名允许用户很少运行“除少数之外的所有”命令 按预期工作
相反,您可以指定一个“白名单”,例如用户的实际命令允许跑步。像这样的东西:
user1 ALL=/sbin/shutdown
以上将允许user1
关闭。您可以在逗号分隔的列表中添加更多命令。
阅读更多相关内容这里。
答案2
我想这几乎是不可能的,因为你必须阻止用户使用任何编辑器,即使这不会阻止他,因为他可以安装另一个编辑器或将二进制文件移动到任何其他位置并使用它。
要点是您不能添加用户sudoers
并授予他除部分权限外的所有权限。
你必须以相反的方式来做。
答案3
su
/sudo
访问是选择加入,而不是选择退出。一旦他们能够获得 root shell,他们就可以绕过您设置的任何其他保护措施。如果它们有特定的东西需要运行并且管理sudoers
文件太复杂(这可能是一般情况下最好的方法),请考虑编写小型的单一用途二进制文件来启动该东西,然后setuid
在它们上设置标志。
答案4
您看过使用 SELinux 吗?您使用的是哪个发行版?
可以创建一个新的 SELinux 用户并只授予他所需的权限(访问角色)。这将是一个选择加入,因此您需要列出用户需要执行的所有操作。