我们有一个自动基线检查,如果权限/etc/shadow
未设置为 000,则会发出警报。
收到这些警报的工作人员已经开始质疑 000 的合理性,因为 root 可以在任何想要的地方读写(所有文件对于 root 来说自动至少为 600),但 root 无法执行没有设置执行权限的文件(没有自动 700 root 文件权限)。
将权限设置/etc/shadow
为 000 是在许多基线中,例如官方 Red Hat GitHub 存储库中的 Ansible playbook(针对 PCI DSS、CJIS、NIST、CCE)。
/etc/shadow
为什么应该是 000 而不是功能看似相同的 600?背后有什么故事吗?或者我对 Linux 对 root 用户的限制/宽容程度的假设是错误的?
答案1
将权限设置为 000 背后的想法/etc/shadow
是通过确保访问由守护进程控制来保护该文件不被守护进程访问,即使以 root 身份运行也是如此。DAC_OVERRIDE
能力。从 Fedora 12 和 RHEL 6 开始,基于 Fedora 的系统运行守护程序时无需DAC_OVERRIDE
,但授予DAC_OVERRIDE
管理员登录会话权限(以便管理员看不到更改)。
看较低的工艺能力了解详情。
这依赖于这样一个事实:600 和 000 权限在功能上并不相同:600 向文件所有者授予读写权限,而 000 只向具有该DAC_OVERRIDE
功能的进程授予访问权限。传统上,始终以 root 身份运行DAC_OVERRIDE
,但情况并非必须如此。
(SELinux 也可以用来限制 root 的能力,但这不是这里涉及的内容。/etc/shadow
它有自己的 SELinux 上下文,提供额外的访问控制。)