| 符號 | 含義 |
u | User(檔案擁有者) |
g | Group(同群組用戶) |
o | Others(其他用戶) |
a | All(所有用戶,預設值) |
操作符號
| 符號 | 作用 |
+ | 新增權限 |
- | 移除權限 |
= | 設定為指定權限,同時移除其他權限 |
權限模式
| 字母 | 權限 | 數值 |
r | 可讀 | 4 |
w | 可寫 | 2 |
x | 可執行/進入目錄 | 1 |
X | 條件執行:目錄或已有執行位時才加 x | - |
s | SetUID/SetGID(執行時以檔案擁有者/群組身分執行) | - |
t | Sticky bit(目錄僅擁有者可刪除檔案) | - |
數值模式(八進位)
三位數分別代表 User、Group、Others,數值為 r(4)+w(2)+x(1) 組合:
| 數值 | 權限組合 | 典型用途 |
777 | rwxrwxrwx | 完全開放(極不推薦) |
755 | rwxr-xr-x | 執行檔/目錄標準權限 |
644 | rw-r--r-- | 一般檔案標準權限 |
600 | rw------- | 私密檔案(SSH 金鑰等) |
700 | rwx------ | 私密目錄/腳本 |
實戰範例
單一檔案
# 符號模式
chmod u+rwx,g+rx,o+r index.html
# 等價數值模式
chmod 754 index.html
批量修改檔案
# 當前目錄所有 .htm 檔案
chmod 644 *.htm
# 遞迴修改目錄下所有檔案為 644,目錄為 755(推薦用 find)
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;
# 簡寫:僅修改檔案
chmod -R 644 /var/www/html # 不推薦:會把目錄也改成 644 導致無法進入
目錄權限特性
| 權限 | 檔案含義 | 目錄含義 |
r | 讀取檔案內容 | 列出目錄檔名(ls) |
w | 寫入/修改檔案 | 建立/刪除目錄內檔案 |
x | 執行檔案 | 進入目錄(cd)、存取內部檔案 |
關鍵差異:目錄需 x 權限才能 cd 進入或存取內部檔案,即使有 r 也不行。檔案需 x 才能當程式執行。
特殊權限實例
# SetUID:執行時獲得檔案擁有者權限(如 passwd)
chmod u+s /usr/bin/passwd
# 或數值:4755
# SetGID:目錄下新建檔案自動繼承群組(協作目錄常用)
chmod g+s /data/shared
# 或數值:2770
# Sticky bit:/tmp 目錄防止用戶刪除他人檔案
chmod +t /tmp
# 或數值:1777
遞迴參數 -R 使用警示
chmod -R 777 /upload 會將目錄與檔案全部設為 777,極度危險。正確做法請見上方 find 分類處理範例。
查看權限
ls -l 檔案名 # 基本權限
ls -ld 目錄名 # 查看目錄本身權限
stat 檔案名 # 完整資訊含八進位數值
getfacl 檔案名 # 查看 ACL 擴展權限
copyright ©
萬盛學電腦網 all rights reserved