在 Linux 系統中,chmod(Change Mode)是用來變更檔案或目錄存取權限的核心指令。掌握這個指令能讓你精確控制誰能讀取、寫入或執行特定檔案,是系統管理與資安的基礎技能。
chmod [權限模式] [檔案/目錄名稱]
權限模式通常以三位數字表示(八進位),分別對應三類身份:
每個數字由「讀(4)」、「寫(2)」、「執行(1)」相加組成:
| 數值 | 權限組合 | 符號表示 |
|---|---|---|
| 7 | 4+2+1 | rwx(讀、寫、執行) |
| 6 | 4+2 | rw-(讀、寫) |
| 5 | 4+1 | r-x(讀、執行) |
| 4 | 4 | r--(唯讀) |
| 3 | 2+1 | -wx(寫、執行) |
| 2 | 2 | -w-(唯寫) |
| 1 | 1 | --x(唯執行) |
| 0 | 0 | ---(無權限) |
sudo chmod 600 secret.key
適用於 SSH 私鑰、設定檔等敏感檔案。
sudo chmod 644 index.html
擁有者可修改,群組與其他人僅能閱讀,是網頁檔案的標準設定。
sudo chmod 700 deploy.sh
僅擁有者能執行、修改,防止他人誤執行或竄改。
sudo chmod 666 shared.txt
⚠️ 安全性提醒:生產環境極少使用,任何人都能修改內容。
sudo chmod 777 public_folder
🚫 極度不建議:除非臨時測試,否則會造成嚴重資安漏洞。
除了數字模式,也可用符號模式更直觀地調整權限:
chmod u+x script.sh:給擁有者增加執行權限chmod g-w file.txt:移除群組寫入權限chmod o=r file.txt:設定其他人唯讀chmod a+rwx directory:所有人獲得所有權限chmod -R 755 /var/www/html
加上 -R 參數可連同子目錄與檔案一併修改,常用於部署專案時批次調整權限。
passwd 指令)/tmp)ls -l filename
輸出範例:-rw-r--r-- 1 user group 1024 Jan 1 12:00 file.txt