繁體中文

開發者工具 · Chmod 計算器

為什麼 chmod 777 是權限被拒絕錯誤的錯誤修復

· 為什麼它很重要

chmod UNIX 存取控制

過於寬泛的模式顯示為不同的 Unix 權限位圖
原始 ToolAcre 向量圖

777 透過為每個人提供一切來使錯誤消失。這篇文章解釋了它實際授予的內容、它如何被利用以及找到真正問題的診斷步驟。

錯誤消失了,問題沒有 - 專案目錄上的 chmod -R 777 修復了上傳表單,但沒有人知道為什麼

在 777 之後消失的權限錯誤僅證明廣泛的存取改變了結果。它沒有揭示哪個位元重要或模式位元是否導致故障。計算器將 777 對應到 rwxrwxrwx。每個類別都會接收讀取、寫入和執行操作,其實際意義在常規檔案和目錄之間有所不同。

有用的證據是與原始模式的位元級差異。記錄該模式的類三元組,然後比較 777 ,而不將成功稱為診斷。計算器不知道進程身分、擁有者、群組、ACL 或強制策略。它僅公開在解決方法成為永久設定之前 777 授予的存取權限。

777 用簡單的話授予什麼 — 系統上的每個用戶都可以讀取、修改以及(對於目錄)創建或刪除樹中的任何內容

模式 777 為每個類別指派最大普通數字。每個 7 結合讀取 4、寫入 2 和執行 1,產生 rwxrwxrwx。對於檔案,所有類別都可以讀取、更改和執行內容。對於目錄,他們可以列出、修改條目並按名稱輸入。每個普通複選框都被選取。

「其他人」具體對應於最終權限三元組,而不是已知帳戶。如果沒有身分和所有權,計算器就無法確定進程是否使用所有者、群組或其他。將 777 與 775 或 755 進行比較仍然可以準確地顯示每個刪除的寫入位,用可見的類別級別差異替換諸如“開放”之類的模糊描述。

損壞是如何發生的 - 受損的 Web 程序、編寫錯誤的腳本或其他租戶編輯配置或刪除 Web shell

計算器公開授予的位,但無法證明利用路徑。世界可寫檔案會觸發警告,任何帳戶都可以更改其內容。沒有黏性警告的 777 目錄可能會建立或刪除條目。這些後果來自模式和目標類型,而不是另一個帳戶存在或執行操作的證據。

將可能的後果與觀察到的事件分開。該頁面不檢查任何進程、租用戶、腳本、設定或 Web 根目錄,也不執行任何操作。它可以確定某個類別啟用了寫入,並標記了廣泛的候選者以供審查。有關妥協、注入檔案或實際濫用的宣告需要計算器從未收集的環境證據。

計算器公開授予的位,但無法示範利用路徑

身分和所有權診斷發生在該路線之外。普通位元被分組為擁有者、群組和其他,但計算器僅接收模式整數和目標類型。如果沒有所有者名稱、群組成員身份或進程憑證,它就無法決定哪個三元組控制失敗的存取嘗試,即使它一致地解碼每個三元組。

這就是為什麼擴大所有類別是一個弱診斷。當進程應該使用群組存取時,經過驗證的群組位元可能很重要;不正確的所有權可能會使任何模式編輯錯誤的補救措施。使用該矩陣隔離候選更改,然後在外部驗證身分和所有權。瀏覽器解決的是表示問題,而不是授權問題。

身分和所有權診斷必須在此路線之外進行

對於上傳目錄,比較候選者而不指定一個。模式 777 允許每個類別目錄讀取、寫入和執行。模式 775 刪除其他寫入,同時保留群組寫入。模式 755 保留為擁有者寫入。計算器會顯示這些差異,但無法知道上傳器使用哪個類別或需要哪些操作。

記錄候選者之間最小的位元變化。從 777 到 775,只有 other-write 消失;從 775 到 755,群組寫入也消失了。目錄寫入控制會建立、重新命名和刪除條目,而執行控制條目和名稱查找。適用性仍然取決於計算器之外的所有權、身分、ACL 和應用程式行為。

工作範例:比較候選上傳目錄模式而不指定一種

特定於程式的拒絕規則需要該程式的檔案和執行時間證據。 chmod 來源不包含 SSH 策略、Web 伺服器規則或應用程式設定。他們無法證明軟體拒絕 777、接受 755 或需要其他值。計算器僅轉換模式並描述其普通檔案或目錄操作。

如果軟體報告權限太寬,請進入觀察模式並檢查其群組和其他位元。然後在更改任何內容之前查閱該程式的權威證據。產生的 chmod 行是惰性文字。匹配的八進制和符號顯示可確認轉換的一致性,而不是符合計劃政策或未來的營運成功。

特定於計劃的拒絕規則需要該計劃的文件

強制存取控制拒絕位於 chmod 和計算器之外。沒有來源查詢 SELinux、AppArmor 或其他策略引擎。因此,模式 777 可能會完美呈現,而不相關的控制項仍然不可見。該頁面無法將該條件與所有權、ACL、儲存或應用程式限制區分開來;所有這些都是外部可能性,而不是計算器的結果。

不要將廣泛模式視為每個授權層的通用測試。計算器的證據以所有者、群組和其他位元以及 setuid、setgid 和 Sticky 結尾。它顯示選定的權限,而不顯示操作失敗或成功的原因。保留觀察到的模式,比較精確的位元並獨立調查外部策略。

強制策略拒絕位於 chmod 和計算器之外

在擴大模式之前了解每項資助。輸入 777 ,所有九個普通權限都會變得明確。比較 755 以刪除群組和其他寫入,或比較 775 以保留群組寫入,同時刪除其他寫入。這些事實轉換揭示了每個候選人的訪問表面,而無需為未知的所有者、流程或工作負載選擇模式。

在瀏覽器外部解析身分和所有權,然後僅驗證預期的位元。使用正確的檔案或目錄解釋確認八進位、符號文字、摘要和複選框一致。該頁面拒絕格式錯誤的輸入,但既不執行 chmod,也不識別妥協。最終授權決定屬於所檢查的環境。