開發者工具 · Chmod 計算器
POSIX ACL 與 chmod 模式位元:當 rwx 不夠時
· 背景
chmod UNIX 存取控制
模式位元涵蓋一位擁有者、一組和其他所有人。這篇文章解釋了填補這一空白的 POSIX.1e ACL 模型、它如何與 chmod 交互,以及何時共享群組仍然是更簡單的答案。
比模型允許的多一個讀取器 - 檔案屬於應用程式組,而該組外的一名審核員需要讀取該檔案
普通模式模型沒有第四個身份槽。它可以描述一個擁有者、一個群組和其他所有人的權限,但不能指定額外的審核員。計算器準確地反映了該邊界:它的矩陣、符號顯示和摘要公開了這三個類別以及特殊位,而不是每個使用者或每個群組的存取條目。
僅僅為了容納一個額外的讀者而擴大另一個類別會影響屬於該類別的每個身分。計算器可以顯示算術變化,例如從 0640 移動到 0644,但它無法決定是否可以接受更廣泛的存取。命名訪問需要此路線之外的證據和工具。
三個類別的限制 - 為什麼傳統模型為所有者、群組和其他人各只有一個槽位
每個尾隨八進位數字屬於一個固定類別。所有者、群組和其他人接收讀取、寫入和執行標誌,產生九個普通位置。此模型無法為指定人員插入另一個三元組。因此,成功的轉換忠實地描述了基本模式,而沒有提及其他地方附加的附加條目。
當讀取明顯限制性的輸出時,此限制很重要。 rw-r----- 的符號值告訴您基本擁有者、群組和其他由 0640 表示的位元。它並不能證明沒有其他身分可以讀取該對象,因為計算器既不檢查 ACL 資料,也不觀察任何外部執行層。
POSIX.1e ACL — 新增至相同檔案的命名使用者和命名群組條目,使用 setfacl 設定並使用 getfacl 讀取
未實作指定使用者和指定群組條目。來源不包含 ACL 記錄的解析器或格式化程式、ACL 遮罩以及 setfacl 或 getfacl 操作。這些概念可能會促使使用外部存取控制機制,但本文無法指定超出計算器明確邊界的命令語法或行為。
在執行單獨的工作時保持基本模式可見。輸入報告的八進制值,驗證所有者、組和其他三元組,並記錄任何特殊位。然後使用權威的檔案系統檔案和合適的外部工具來命名條目。計算器產生的 chmod 預覽不會建立、檢查或保留 ACL。
命名 ACL 條目需要外部工具,此處未實現
chmod 變更、群組類別位元和 ACL 遮罩之間的關係取決於此處未實現的行為。計算器只是轉換十二位元模式並發出賦值或八進位參數。它沒有用於計算有效權限的 ACL 狀態,因此它無法預測指定條目是否會受到限制。
避免僅從模式輸出描述 ACL 結果。從 0640 到 0600 的變更明顯刪除了該模型中的三個群組類別;有關命名使用者、命名群組或遮罩的任何內容都需要實際的 ACL 和平台規則。在將顯示的命令套用至包含 ACL 的物件之前,請使用檔案系統檔案驗證這些內容。
ACL 遮罩與 chmod 的交互需要檔案系統文件
預設 ACL 繼承也超出了路由範圍。該頁面沒有目錄ACL輸入,沒有建立操作,也沒有umask欄位。將目標選擇器從檔案切換到目錄會變更附加到固定模式的簡單英文動詞;它不會建立檔案、模型繼承或計算未來物件的權限。
基於相同的原因,目前目錄模式無法預測此處每個新子目錄的模式。計算器可以解釋目錄讀取、寫入和執行對應於列出、修改條目和到達命名內容。它無法將這些基本位元與它從未接收到的預設條目、建立請求或進程遮罩組合起來。
預設 ACL 繼承和 umask 互動在此路由之外
考慮為可能需要額外讀取器的檔案提供 0640 基本模式。計算器呈現 rw-r-----:所有者讀取和寫入,群組讀取,其他無。這是其輸入支援的完整宣告。它既不識別審計員,也不提供第四類來放置該身分。
在 ACL 工作發生在其他地方時保留此基本模式記錄。如果外部進程稍後會報告不同的模式,請再次解碼並比較每個類別。不要將 ACL 命令貼到模式欄位中,也不要假設命令預覽包含命名條目。它始終僅代表當前顯示的數字模式。
工作範例:在 ACL 工作發生在其他地方時保持基本模式可讀
其他 ACL 系列、遠端檔案系統規則和掛載支援不是由這些來源建立的。計算器不會偵測儲存類型、安裝選項、作業系統或 ACL 操作的可用性。因此,缺少 ACL 視圖是一個實現邊界,而不是底層物件缺乏更豐富的存取控制的證據。
強制策略、功能、所有權和進程標識同樣是獨立的。即使完全了解基本模式也無法取代這些輸入。將模式轉換報告為一層,並明確標記每個未觀察到的層。這可以防止乾淨的 rwx 顯示被誤認為是完整的授權分析。
無法推斷其他 ACL 模型和安裝支持
當三個類別足夠時,計算器會對它們進行精確、可逆的計算。如果不是,請保持該基本帳戶可讀,而不是將命名異常強製到另一個類別中。八進位、符號和複選框視圖應在相同的所有者、群組、其他和特殊位元值上達成協議。
停止規則很簡單:使用此路徑進行基本模式算術,使用外部權威工具進行 ACL 狀態。切勿僅從 rwx 推斷命名條目、遮罩、繼承或檔案系統支援。仔細審查將這些單獨的證據來源結合起來,而不假裝計算器實現了其原始程式碼不包含的存取控制結構。