chown — 變更檔案擁有者與群組
變更檔案或目錄的擁有者與所屬群組。
語法
chown [選項] 擁有者[:群組] 檔案...
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-R, --recursive |
遞迴套用到目錄及其所有內容 | chown -R user:group /var/www/ |
-v, --verbose |
顯示每個已處理的項目 | chown -v user file.txt |
-c, --changes |
只顯示有實際變更的項目 | chown -c user *.conf |
--reference=檔 |
使用參考檔的擁有者與群組作為目標 | chown --reference=ref.txt file.txt |
-h, --no-dereference |
對符號連結本身操作(非目標) | chown -h user symlink |
使用範例
範例 1:變更擁有者
將 data.txt 的擁有者改為 alice(群組不變)。
$ sudo chown alice data.txt
範例 2:同時變更擁有者與群組
使用 user:group 格式同時指定擁有者與群組,冒號分隔。
$ sudo chown www-data:www-data /var/www/html/
範例 3:只變更群組
使用 :group 格式(冒號開頭)只變更群組,擁有者不變。
$ sudo chown :developers project.py
範例 4:遞迴變更整個目錄
使用 -R 遞迴變更目錄下所有檔案與子目錄的擁有者。
$ sudo chown -R deploy:deploy /opt/myapp/
範例 5:確認變更結果
使用 ls -la 確認擁有者與群組已正確變更。
$ ls -la data.txt
-rw-r--r-- 1 alice developers 1024 May 20 09:00 data.txt
常見錯誤與排錯
chown: changing ownership of 'file': Operation not permitted
- 原因
- 非 root 使用者無法改變其他人的檔案擁有者。
- 解法
- 使用 sudo chown,或確認自己是檔案的目前擁有者。
chown: invalid user: 'username'
- 原因
- 指定的使用者名稱不存在於系統中。
- 解法
- 使用 id username 確認使用者存在,或用 cat /etc/passwd 查看可用使用者。