防止在 Linux 中将 UID=0 分配给任何其他用户

防止在 Linux 中将 UID=0 分配给任何其他用户

我想知道是否有办法防止将 UID=0 分配给 root 以外的任何其他帐户。

答案1

你不能。“root”只是一个名字,创建一个 UID 为 0 的账户“bennybunny”是完全有效的。但这只适用于已经以 UID 0 运行的进程……

对于 UNIX/Linux 内核来说,数字才是最重要的。在用户空间中,通过 libc,存在将数字映射到名称的映射。顺便说一句,将多个名称映射到同一个数字是完全可能且有效的。

答案2

我能想到的最简单的方法是将 /etc/passwd 设为只读文件。由于这有明显的副作用,即完全不允许创建或更新帐户,因此我不会这样做。

也许你不应该考虑 uid 0,而应该看看SELinux提供强制访问控制甚至连 root 也无权执行任何操作。

相关内容