chown 改「誰擁有」 (用戶/組),chmod 改「能做什麼」 (讀/寫/執行權限位)。
r=4, w=2, x=1 → 三組相加chmod 755 file # rwxr-xr-xchmod 644 file # rw-r--r--chmod 770 dir # rwxrwx---chmod -R 755 dir # 遞歸 chmod u+rwx,g+rx,o+rx file # 精確添加chmod a-x file # 所有人去執行權限chmod u=rw,g=r,o= file # 精確設置 (= 覆蓋原有)chmod +X dir # 目錄/可執行文件加 x (大寫 X) chmod 4755 /usr/bin/passwd # Setuid: 執行時提升為文件屬主權限chmod 2775 /shared/team # Setgid: 目錄下新建文件繼承組chmod 1777 /tmp # Sticky: 僅擁有者可刪除文件 chown user file # 改屬主chown user:group file # 同時改屬主屬組chown :group file # 僅改屬組chown -R user:group dir # 遞歸chown --reference=ref file # 參考文件屬主/組 nosuid / 只讀)。結論:chown 改變第 2/3 步判斷依據,chmod 改變各步匹配的權限位內容,兩者正交獨立。
| 需求 | 命令 | 屬性 |
|---|---|---|
| 把文件給 zhangsan 使用 | chown zhangsan file | 所有權 |
| 讓組 members 可寫 | chown :members file && chmod g+w file | 所有權 + 權限 |
| 腳本可直接執行 | chmod +x script.sh | 權限 |
| 目錄下新文件自動屬組 | chmod g+s dir | 權限 (Setgid) |
| Web 服務器讀取靜態資源 | chown -R www-data:www-data /var/www | 所有權 |
chmod 777 解決所有權限問題 → 極大安全風險,應精確授權。chown 能賦予權限 → chown 僅改屬主/組,實際能否讀寫仍看 chmod 位。-R 或誤加 -R 導致系統文件屬主變更 → 謹慎使用,先 find /path -user old 確認範圍。