![具有严格权限的系统文件](https://linux22.com/image/43067/%E5%85%B7%E6%9C%89%E4%B8%A5%E6%A0%BC%E6%9D%83%E9%99%90%E7%9A%84%E7%B3%BB%E7%BB%9F%E6%96%87%E4%BB%B6.png)
通常,当我们跑步时
ls -l
我们可以看到这样的图片 -rwx...- 因此所有者始终拥有完整的权限堆栈。通常系统文件的所有者是root。是否有任何系统文件 root 没有所有权限,例如只能读取?如果它们存在,为什么它们甚至对 root 也有如此严格的权限策略?
答案1
不应该执行的文件即使对于 root 来说也没有 x 权限,因此他不会意外执行某些操作。 root 在覆盖之前应该三思而后行的文件缺少 root 的 w 权限。 Root 可以在不更改文件权限的情况下覆盖此设置,但大多数程序在执行此操作之前都会进行提示。我相信 root 根本不会检查读取权限。
答案2
只有 3 种(我可以轻易想到的)方法来拒绝 root 对文件(在普通文件系统上)的访问。
- 文件系统以只读方式安装。
- 该文件是不可变的 (
chattr +i
)。 Root 能够更改属性并删除不可变标志,但这是一个手动过程,因为应用程序不会自动执行此操作。这通常用于防止意外写入文件。 - 该文件是正在运行的可执行文件。内核防止修改当前正在运行的任何可执行文件。您可以取消链接 (
rm
) 文件,但不能修改其内容。
现在有很多其他方法可以在使用 root 时拒绝对文件的写访问。 NFS 和 CIFS 等网络文件系统可以拒绝根访问(如果在服务器上配置为这样做)。一些其他特殊的文件系统,例如 IBM Rational ClearCase 的 mvfs,也可以做到这一点。
然而尽管如此,还没有任何标准root 无法写入的文件。发行版确实可以使用不可变标志设置文件,但这不是标准的。