繁體中文

開發者工具 · Chmod 計算器

umask 如何決定新檔案和資料夾的預設權限

· 工作原理

chmod UNIX 開發人員工作流程

umask 結果顯示為不同的 Unix 權限位圖
原始 ToolAcre 向量圖

新檔案不從 777 開始;先敷上面膜。這篇文章展示了確切的位元運算、為什麼檔案和目錄最終不同,以及如何推斷 umask 022、027 和 077。

Web 伺服器無法讀取的檔案 — cron 作業將 600 檔案寫入 nginx 服務的目錄中,並沒有人對任何內容執行 chmod

新觀察到的檔案模式可以在此處解碼,即使產生它的進程未知。輸入600,計算器顯示rw--------:擁有者讀寫,群組或其他沒有權限。這解釋了所提供的結果的位。它沒有確定計劃作業產生該值的原因或 Web 進程是否可以讀取該檔案。

文章 501 提供必要的診斷限制。有效模式可能與錯誤的所有權或父目錄上缺少執行位元共存。此頁面既不接收進程標識也不接收路徑資訊。它可以將 600 與建議的 640 進行比較,並公開新增的群組讀取位,但它不能將原始模式歸因於 umask、服務、shell 或檔案系統。

新權限來自哪裡 - 請求的模式(通常是 666 對於檔案,777 對於目錄)和進程的 umask

請求的建立模式和 umask 是背景輸入,而不是計算器控制項。沒有 umask 欄位,也沒有建立檔案或目錄的操作。因此,任何創建模式範例都必須作為外部計算結果到達。一旦提供,計算器可以將結果轉換為八進制、符號、矩陣、摘要和簡單英語形式,而無需宣告該值是如何獲得的。

這個更正的範圍很重要,因為同步輸出看起來比實際情況更有權威。輸入 640 產生 rw-r----- 並標識擁有者 read/write 加上群組讀取。該頁面可以驗證該表示。它無法預測登入進程、排程任務、服​​務、容器或儲存系統的預設值,因為這些上下文都不會出現在其輸入或實作中。

請求的建立模式和 umask 是此處未實現的後台輸入

AND-NOT 算術必須在此計算器之外執行。它的核心接受一個完整的整數並將其分解為命名標誌;它沒有用於創建掩碼的第二個操作數。因此,該頁面無法示範遮罩公式、將減法與位元運算進行比較,或在進入其結果模式之前確定外部計算是否正確執行。

它可以檢查的是最終的位元模式。如果另一個可信任來源提供 640,則矩陣顯示擁有者讀取和寫入、群組讀取以及無其他權限。變更組讀取重建 600,同時變更其他讀取重建 644。這些轉換驗證轉換器內部的模式算術,而不將它們呈現為創建掩模計算或有關看不見的過程的證據。

AND-NOT 運算必須在計算器外部執行

計算器可以比較結果檔案和目錄模式,但它不會建立兩者。選擇 644 後,常規檔案解釋描述讀取和變更檔案;將目標切換到目錄會將這些動詞變更為列出、修改條目和到達名稱。該整數仍為 644。這種對比說明了為什麼目標類型很重要,而無需斷言哪個創建預設任何程式請求。

單獨提供的 755 結果可以用同樣的方式檢查。它的顯示是 rwxr-xr-x,所有類別的執行都處於活動狀態; 644 是 rw-r--r--,自始至終都沒有執行。該頁面清楚地揭示了這種差異。它不會從 666、777、022 或任何其他後台輸入中派生任何值,因為這些計算未在 CHMOD_SOURCES 中實現。

計算器可以比較結果檔案和目錄模式,但兩者都不創建

對於限制性遮罩範例,將計算保持在外部並僅解碼規定的結果。如果觀察到的常規檔案是 640,則計算器呈現 rw-r-----;如果觀察到的目錄是 750,它會呈現 rwxr-x---。擁有者在兩者中都保留更廣泛的存取權限,群組收到的權限範圍較小,而其他人則沒有任何權限。這些陳述直接來自已完成的模式。

另一個外部提供的對,600 和 700,使相同的審查方法可見,而無需宣告其來源。模式 600 僅允許擁有者對檔案進行讀寫。模式 700 只允許擁有者在目錄上讀取、寫入和執行。轉換器可以確認每個類別和位,但它無法根據自己的證據將任一結果與特定的 umask 設定相符。

工作範例:解碼限制性遮罩的外部計算結果

進程取得 umask 的位置是外部儲存庫證據。此計算器不包含與 shell、調度程序、服務管理器、容器或進程環境的整合。因此,將這些系統之一命名為某種模式的原因將超出頁面觀察到的範圍。從在其他地方收集的可信模式開始,然後僅使用此路徑使其所有者、群組和其他位元清晰可見。

指令預覽並不能彌補這證據缺口。它可以引用提供的路徑並可選擇顯示 -R,但它從不開啟路徑或讀取進程設定。同樣,目標選擇器更改解釋語言而不是發現物件類型。一致的轉換縮小了權限問題;它沒有透露哪個元件選擇了該模式或該選擇是否是有意的。

進程取得 umask 的位置是外部儲存庫證據

預設 ACL 和明確建立模式不在此工具之外。其資料模型具有一個所有者類別、一個群組類別、其他所有類別和三個特殊位元。沒有命名的 ACL 條目、ACL 遮罩、建立呼叫或程式參數。因此,計算器無法確定完成模式是來自另一個存取控制層還是來自提供特定請求的應用程式。

仍然可以檢查模式,而無需將這些機制折疊在一起。輸入觀察到的八進制值,確認九個符號位置,並將矩陣與四位總和進行比較。如果一致,則傳統模式已正確解碼。任何有關預設值、ACL 效果或程式行為的宣告都需要來自創建者和檔案系統的證據,而不是同一整數的另一種解釋。

預設 ACL 和明確開啟模式不在該工具範圍內

更正後的工作流程在其他地方計算,然後在此檢查結果模式。提供完整的八進位或 ls 樣式字串,並讓同步欄位公開每一位。驗證可捕獲格式錯誤的八進制數字和符號位置不正確的字母。它不會驗證 umask 表達式、發現創建上下文或預測未來檔案或目錄將接收的內容。

將結果視為一個診斷層。解碼後的 640 或 750 可能會揭示意外的授權或遺失的執行位,而文章 501 則提醒我們分別檢查所有權和父目錄遍歷。在指定原因之前停止。計算器證明提供的值如何映射到權限;它不為有關 shell、服務、容器、ACL 或檔案系統預設值的聲明提供依據。