專為初學者設計的 chmod 計算器可將完整的 Unix 權限模式轉換為標準八進位值、九字元 rwx 表示法,以及擁有者/群組/其他人權限表。 實用目標不只是變更數字,而是翻譯您所收到的模式,確認它確切要求哪些讀取、寫入與執行或目錄搜尋位元,並辨識是否含有 setuid、setgid 或 sticky 狀態。初學者常在不同位置看到這些位元,例如文件中的八進位值、目錄清單中的 rwx 字串,或包含特殊狀態的四位數模式;因此,只反轉熟悉的三個數字可能產生誤導答案。Chmod 計算器可在瀏覽器中處理這項任務。選擇轉換方向,依指定的嚴格格式輸入完整的權限快照,並在複製命令範本前檢查標準八進位結果、九字元符號結果及權限明細。它會在目前的瀏覽器分頁中執行計算、驗證、表格產生及剪貼簿操作;它不會執行 chmod,也不會修改本機或遠端檔案。請將輸出作為檢查輔助工具,因為要求特定模式本身並不保證實際存取權限;其結果仍會受到擁有者、上層目錄 traversal、ACL 及作業系統政策的影響。

chmod calculator for beginners
Chmod 計算器初學者指南:八進位與 rwx 步驟

選擇符合來源格式的表示法

首先,請辨識您面前已有的完整權限值。對於文件中的簡潔數字模式,請使用八進位轉符號轉換。對於從目錄清單複製而來的完整九字元 rwx 值,請使用符號轉八進位轉換。計算器刻意不會猜測您預期的格式,也不接受兩種格式的混合使用。

八進位輸入

八進位輸入必須完全由三或四個 ASCII 八進位數字組成。工具會拒絕 0o 前置詞、正負號、空格、分隔符、小數點、底線及 Unicode 外觀相似數字。三位數值明確表示未設定 setuid、setgid 或 sticky 位元。工具接受明確的前導零,但若未設定特殊位元,標準輸出會移除這個多餘的零。

符號輸入

符號輸入必須依擁有者、群組及他人的順序,完全包含九個字元。每個類別都有讀取、寫入及執行三個位置。讀取位置接受 r 或連字號,寫入位置接受 w 或連字號,一般執行位置接受 x 或連字號。特殊位元位置則可依位元及執行狀態改填 s、S、t 或 T。

請勿加入完整清單中的前置檔案類型字元,例如 -rwxr-xr-x 中的連字號。也不要輸入 u+x 之類的修改運算式。這些格式含有不同的資訊,因此計算器會予以拒絕,而不會嘗試進行不確定的轉換。

轉換完整的權限快照

  1. 選擇轉換方向。 從數字模式開始時,請選擇八進位轉符號;從完整的 rwx 快照開始時,請選擇符號轉八進位。變更方向會載入適當的範例,並清除先前的結果、錯誤及複製狀態,避免將過時資訊誤認為新轉換結果。
  2. 依指定的嚴格格式輸入一個完整的權限快照。 八進位格式必須完全由三或四個 ASCII 八進位數字組成。符號表示法必須完全包含九個位置有效的字元,且不得有前置檔案類型字元或修改語法。請確保輸入的是完整模式,而不是只有擁有者權限。
  3. 轉換、檢查,然後複製。 請核對標準八進位值、九字元符號值,以及擁有者/群組/他人表格。使用複製命令前,請驗證目標檔案、擁有者、預期群組、所有特殊位元,以及實際使用者或服務所需的最小權限。複製的範本為 chmod OCTAL FILE,其中 FILE 仍是佔位符,並非實際路徑。

解碼擁有者、群組及他人權限

三個一般八進位位置一律依序表示擁有者、群組及他人。每個位置中的各項貢獻會相加:讀取貢獻 4,寫入貢獻 2,執行或目錄搜尋貢獻 1。產生的類別數字範圍為 0 至 7。

權限類別 讀取貢獻 寫入貢獻 執行或目錄搜尋貢獻
擁有者 4 2 1
群組 4 2 1
他人 4 2 1

範例說明: 一般數字的公式為讀取貢獻加寫入貢獻,再加執行或目錄搜尋貢獻。將 755 中的三個數字代入,可得擁有者 = 4 + 2 + 1 = 7,群組 = 4 + 1 = 5,他人 = 4 + 1 = 5。八進位結果為 755,而各權限群組分別轉換為 rwx、r-x 與 r-x,產生九字元值 rwxr-xr-x。

執行位元具有取決於內容物的操作意義。對一般檔案而言,它通常控制該檔案是否可執行;對目錄而言,它則控制該目錄是否可搜尋或 traversal。檢查路徑存取權限時,這項差異使擁有者、群組及他人權限格外重要。

解讀 setuid、setgid 與 sticky 狀態

特殊狀態由四位數八進位模式的第一個數字表示。該數字結合 setuid、setgid 與 sticky 的貢獻,而非描述擁有者權限。在符號輸出中,特殊狀態共用三個執行位置,因此字元的大小寫含有重要資訊。

特殊狀態 首位數字貢獻 模式遮罩 符號位置 小寫形式 大寫形式
Setuid 4 04000 擁有者執行 s S
Setgid 2 02000 群組執行 s S
Sticky 1 01000 他人執行 t T

小寫 s 或 t 表示相關特殊位元與執行位元均已設定。大寫 S 或 T 表示特殊位元存在,但該執行位元不存在。保留這項差異,可讓符號值往返轉換後仍對應相同的模式位元。採用四個八進位數字時,非零的特殊數字會保留在標準輸出中;若無特殊位元,則會省略多餘的前導零。

套用前先檢查命令

正確的轉換可辨識所要求的模式位元,但無法決定實際授權。POSIX 定義了位元位置,但存取仍可能受到擁有者、ACL、capabilities、掛載選項、唯讀檔案系統、應用程式沙箱及其他作業系統政策影響。程序也需要權限,才能 traversal 路徑中的每個上層目錄。準備系統變更時,GNU chmod 手冊是瞭解命令行為的實用參考資料。

  • 確認目標是預期的檔案或目錄,且複製命令中的佔位符會替換為正確路徑。
  • 檢查擁有者、群組、服務身分,以及真正需要各類存取權限的使用者。
  • 判斷是否確實需要 setuid、setgid 或 sticky 狀態,而不是因為四位數範例看起來熟悉就加以加入。
  • 授予實際任務所需的最小權限,不要以廣泛存取權限繞過擁有者、群組、ACL 或 traversal 問題。

特殊位元尤其需要審慎處理。可執行檔案上的 setuid 與 setgid 可能改變有效身分,系統也可能在特定擁有者或安全條件下清除或忽略它們。目錄上的 setgid 通常會影響指派給新項目的群組。目錄上的 sticky 通常會限制並非項目或目錄擁有者的使用者進行刪除或重新命名。檔案系統也可能不會保留或遵循每個要求的位元。

Umask 會影響建立檔案時所要求的權限;它並不是轉換器悄悄加入的額外數字。計算器不會執行 chmod、不會遞迴處理目錄、不會遵循符號連結、不會修改 ACL、不會計算 umask 結果、不會檢查目前的權限,也不會判斷特定程式所要求的模式是否安全。

維持驗證與剪貼簿回饋的可靠性

編輯輸入內容時,會清除舊有結果、錯誤及複製狀態。驗證失敗後不會讓先前的轉換結果繼續顯示,延遲的剪貼簿回應也不會在輸入或轉換方向變更後發布過時的成功訊息。如果剪貼簿存取遭拒,標準八進位值、符號值及權限表仍會保持顯示,供您手動複製。

原始輸入最多可容納 32 個 UTF-16 程式碼單位。精確的邊界會保持可見,並收到語法錯誤;下一個程式碼單位則會收到明確的額度錯誤。計算器不會透過 HTML 長度上限悄悄截斷數值。

計算、驗證、權限表產生及剪貼簿操作全都在目前的瀏覽器分頁中執行。任何檔案路徑、權限值或命令都不會上傳至 Lizely。轉換實作也會檢查完整的 12 位元模式範圍,而非僅依賴幾個熟悉的範例。請將結果作為第二個檢查點:與來源比較、確認權限表,並在對實際系統進行任何變更前檢查複製的範本。

如果您正在權衡各種選項,初學者 Box Shadow 產生器:實用 CSS 指南有詳細說明。

如果您正在權衡各種選項,初學者 Clip Path 產生器:實用工作流程有詳細說明。