chmod#
chmod 是包含在 GNU Coreutils 內的檔案模式(權限)修改工具
chmod (Change Mode) 是 Linux 系統中用於更改檔案或目錄存取權限的指令。在 Linux 的安全模型中,每個檔案都有對應的「讀取 (r)」、「寫入 (w)」與「執行 (x)」權限,並區分為「擁有者 (User)」、「群組 (Group)」與「其他使用者 (Others)」。透過
chmod,管理者可以精確控制誰能存取或執行特定的檔案。
Install#
$ sudo apt install coreutilsSetting in up#
Operate#
chmod [options] mode file…
使用數字模式設定權限 (擁有者全開, 其他人僅讀取與執行)#
chmod 755 script.sh
使用符號模式為所有者增加執行權限#
chmod u+x script.sh
遞迴變更整個目錄的權限#
chmod -R 644 /path/to/directory/
| 參數 | 範例指令 | 說明 |
|---|---|---|
-R | chmod -R 755 dir | 遞迴處理。變更指定目錄及其下所有子目錄與檔案的權限。 |
-v | chmod -v 644 file | 顯示過程。顯示每一個檔案權限變更後的詳細狀態訊息。 |
-c | chmod -c 644 file | 顯示變更。與 -v 類似,但僅在權限確實有發生變動時才顯示訊息。 |
-f | chmod -f 644 file | 強制執行。忽略錯誤訊息,不顯示無法更改權限的警告。 |
--reference | chmod --reference=a b | 參考權限。將檔案 b 的權限設定為與參考檔案 a 完全一致。 |
| 數值 | 符號 | 權限說明 |
|---|---|---|
| 4 | r-- | 僅讀取 (Read) |
| 2 | -w- | 僅寫入 (Write) |
| 1 | --x | 僅執行 (Execute) |
| 7 | rwx | 讀取 + 寫入 + 執行 ($4+2+1$) |
| 6 | rw- | 讀取 + 寫入 ($4+2$) |
| 5 | r-x | 讀取 + 執行 ($4+1$) |
| 3 | -wx | 寫入 + 執行 ($2+1$) |
| 0 | --- | 無任何權限 |
| 符號 | 對象名稱 | 說明 |
|---|---|---|
| u | User | 檔案的擁有者。 |
| g | Group | 檔案所屬群組的成員。 |
| o | Others | 除了擁有者與群組以外的所有人。 |
| a | All | 以上全部對象 (u+g+o)。 |
| 符號 | 名稱 | 說明 |
|---|---|---|
+ | 增加 | 為指定對象新增某項權限。 |
- | 移除 | 為指定對象取消某項權限。 |
= | 設定 | 直接指定權限,覆蓋掉舊有的權限設定。 |
| 符號 | 權限名稱 | 說明 |
|---|---|---|
| r | Read | 讀取:查看檔案內容或列出目錄檔案。 |
| w | Write | 寫入:修改檔案內容或在目錄內增刪檔案。 |
| x | Execute | 執行:運行程式碼或進入該目錄。 |
| s | SetID | 特殊權限:SUID 或 SGID(進階權限)。 |
Reference#
Official docs: