
我以 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 使用者讀取檔案內容。