限制用户切换到root用户但可以执行所有命令

限制用户切换到root用户但可以执行所有命令

我想提供一个用户来执行 root 用户可以执行的所有命令,除了切换到 root 用户之外。

所以我在 centos7/redhat7 的 sudoers 文件中添加如下

来宾 ALL=(ALL:ALL) NOPASSWD: ALL,!/bin/su - , !/bin/su - , !/bin/su root

但用户仍然可以使用“sudo -i”或“sudo su”切换为root用户。如何阻止用户执行上述命令,或者至少以某种方式阻止任何人在服务器上切换为 root 用户,但可以运行允许 root 用户的所有命令。

答案1

你不能。如果你想允许某人做任何事物作为 root,他们不需要 su 或 sudo 来成为 root。只需允许他们以 root 身份运行 chown 和 chmod 即可获得对服务器的 root 访问权限。哎呀..只要允许他们以 root 身份编辑 passwd 文件就会给他们 root 访问权限...这可以使用 cat、echo、sed、awk、vi、vipw 等。

这是我们在安全领域看到的 sudo 最愚蠢的用法之一......允许某人以 root 身份运行任何东西,但不要让他们成为 root。呃……这样不行。

以名称作为 root 并不特别……以 UID 0 执行才是重要的。某人需要做的就是 chmod SUID root /bin/bash 他们就成为 root 了。或者只需将 /etc/passwd 中的 UID 更改为 0,他们一登录就成为 root。两个简单的例子,但还有更多。

root 访问权限应该只授予那些负责系统的人......在这一点上,sudo 就是一个笑话......只需让他们 su 到 root 即可。对于需要有限 root 权限的非系统管理员用户,sudo 才有意义,但前提是您允许执行非常具体的命令,并且您足够了解 UNIX 操作系统的工作原理,不会授予对有风险的可执行文件的 root 访问权限。 .. 即 vi、chown、chmod、cp、mv 等,并且您限制这些命​​令的参数和执行模式。

相关内容