我以 root 身份创建了一个文件,并在其中写入了一个字符串。现在我已将模式更改为“0”,如下所示:
root# ls -al transit/
total 4.0K
---------- 1 root root 6 Jan 5 18:15 27050
root#
如果我尝试尾部、头部或猫它,它会起作用:
root# cat transit/27050
320646
root#
为什么可以读呢?
答案1
参考答案这里。
基本上,根性胜过权限。
权限 000 表示只有 root 可以读取或写入该文件。
我不知道 root 所有权和 000 权限的组合有任何额外的特殊用途。
另外,您还可以从中找到一些有价值的信息也有问题。
因此,正如用户 Hauke Laging 在他的回答中指出的那样,
始终假设(以及具有和 的
root
任何其他用户/进程 )可以执行CAP_DAC_OVERRIDE
CAP_DAC_READ_SEARCH
一切 除非 LSM(SELinux、AppArmor 或类似的)阻止他这样做。这也意味着您应该假设您的所有击键都可以被读取。密码并不真正安全。如果您想要严格的安全级别,那么您必须使用完全由您控制的系统(甚至不被其他任何人使用。
因此,即使权限 000 也无法限制 root 用户读取文件内容,除非有任何 LSM 阻止 root 用户读取文件内容。