chmod#

chmod 是包含在 GNU Coreutils 內的檔案模式(權限)修改工具

chmod (Change Mode) 是 Linux 系統中用於更改檔案或目錄存取權限的指令。在 Linux 的安全模型中,每個檔案都有對應的「讀取 (r)」、「寫入 (w)」與「執行 (x)」權限,並區分為「擁有者 (User)」、「群組 (Group)」與「其他使用者 (Others)」。透過 chmod,管理者可以精確控制誰能存取或執行特定的檔案。

Install#

$ sudo apt install coreutils

Setting in up#


Operate#

chmod [options] mode file…

使用數字模式設定權限 (擁有者全開, 其他人僅讀取與執行)#

chmod 755 script.sh

使用符號模式為所有者增加執行權限#

chmod u+x script.sh

遞迴變更整個目錄的權限#

chmod -R 644 /path/to/directory/

參數範例指令說明
-Rchmod -R 755 dir遞迴處理。變更指定目錄及其下所有子目錄與檔案的權限。
-vchmod -v 644 file顯示過程。顯示每一個檔案權限變更後的詳細狀態訊息。
-cchmod -c 644 file顯示變更。與 -v 類似,但僅在權限確實有發生變動時才顯示訊息。
-fchmod -f 644 file強制執行。忽略錯誤訊息,不顯示無法更改權限的警告。
--referencechmod --reference=a b參考權限。將檔案 b 的權限設定為與參考檔案 a 完全一致。
數值符號權限說明
4r--僅讀取 (Read)
2-w-僅寫入 (Write)
1--x僅執行 (Execute)
7rwx讀取 + 寫入 + 執行 ($4+2+1$)
6rw-讀取 + 寫入 ($4+2$)
5r-x讀取 + 執行 ($4+1$)
3-wx寫入 + 執行 ($2+1$)
0---無任何權限
符號對象名稱說明
uUser檔案的擁有者
gGroup檔案所屬群組的成員
oOthers除了擁有者與群組以外的所有人
aAll以上全部對象 (u+g+o)。
符號名稱說明
+增加為指定對象新增某項權限。
-移除為指定對象取消某項權限。
=設定直接指定權限,覆蓋掉舊有的權限設定。
符號權限名稱說明
rRead讀取:查看檔案內容或列出目錄檔案。
wWrite寫入:修改檔案內容或在目錄內增刪檔案。
xExecute執行:運行程式碼或進入該目錄。
sSetID特殊權限:SUID 或 SGID(進階權限)。

Reference#

Official docs: