Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux chown 與 chmod 核心區別:所有權 vs 權限位

編輯:Linux 系統常見問題解答

一句話總結

chown 改「誰擁有」 (用戶/組),chmod 改「能做什麼」 (讀/寫/執行權限位)。

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 - 所有權變更

chown user file              # 改屬主chown user:group file       # 同時改屬主屬組chown :group file            # 僅改屬組chown -R user:group dir      # 遞歸chown --reference=ref file   # 參考文件屬主/組

權限檢查邏輯 (VFS)

  1. 進程 euid == 0 (root) → 直接通過 (除掛載 nosuid / 只讀)。
  2. 進程 euid == 文件屬主 → 匹配 user 權限位 (r/w/x)。
  3. 進程 egid/in groups == 文件屬組 → 匹配 group 權限位。
  4. 其他 → 匹配 other 權限位。

結論: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 確認範圍。
Copyright © Windows教程網 All Rights Reserved