Files

/etc/shadow 權限安全最佳實踐(000 vs. 600 vs. 640)

  • October 30, 2019

我們有一個自動基線檢查,如果權限/etc/shadow未設置為 000,則會發出警報。

收到這些警報的工作人員已經開始質疑 000 的合理性,因為 root 可以在任何它想讀寫的地方讀寫(所有文件自動為 root 至少 600)但是 root 不能在沒有執行權限集的情況下執行文件(沒有root 的自動 700 文件權限)。

/etc/shadow權限設置為 000 是在許多基線中,例如官方 Red Hat GitHub 儲存庫中的 Ansible playbooks(用於 PCI DSS、CJIS、NIST、CCE)。

為什麼/etc/shadow應該是 000 而不是例如看似功能相同的 600 背後是否有起源故事?還是我對 Linux 對 root 使用者的限制/許可程度的假設是錯誤的?

將權限設置為 000 背後的想法/etc/shadow是通過確保訪問由DAC_OVERRIDE 功能控制來保護該文件不被守護程序訪問,即使以 root 身份執行也是如此。從 Fedora 12 和 RHEL 6 開始,基於 Fedora 的系統執行守護程序而不使用DAC_OVERRIDE,但授予DAC_OVERRIDE管理員登錄會話(這樣更改對管理員是不可見的)。

有關詳細資訊,請參閱較低的處理能力

這依賴於 600 和 000 權限在功能上並不相同的事實:600 授予文件所有者讀寫權限,而 000 僅授予對具有該DAC_OVERRIDE功能的程序的訪問權限。傳統上,總是以 root 身份執行DAC_OVERRIDE,但不一定如此。

(SELinux 也可以用來限制 root 的能力,但這不是這裡所涉及的。/etc/shadow確實有自己的 SELinux 上下文,提供額外的訪問控制。)

引用自:https://unix.stackexchange.com/questions/549464