若要更改某個檔案或目錄的擁有者,可以直接使用 chown 更改: # 將 myfile 的擁有者改為 myuser sudo chown myuser myfile **************************** 如果要更改檔案或目錄的群組,也可以用 chown 更改: # 將 myfile 的群組改為 mygroup sudo chown :mygroup myfile chown 的第一個參數若以冒號開頭,就是代表群組名稱的意思, 這一行指令就是將 myfile 這個檔案的群組改為 mygroup。 若要同時更改 myfile 的擁有者與群組,可以這樣寫: # 同時更改擁有者與群組 sudo chown myuser:mygroup myfile **************************** 預設的狀況下,chown 在更改檔案的擁有者與群組後, 並不會輸出任何訊息(除非出現錯誤), 若要讓 chown 明確顯示更改的結果,可以加上 -v 參數: # 輸出執行結果 sudo chown -v myuser:mygroup myfile **************************** 若不想讓 chown 輸出任何錯誤訊息,可以加上 -f 參數: # 不輸出任何錯誤訊息 sudo chown -f myuser:mygroup myfile **************************** 遞迴更改整個目錄 如果要一次修改某個目錄下所有檔案與子目錄的擁有者與群組, 可以使用 chown 加上 -R 參數來處理: # 遞迴更改整個目錄下的所有檔案 sudo chown -R myuser:mygroup myfolder 這樣就會把 myfolder 這個目錄以及其中所有的檔案與子目錄都改成 myuser:mygroup。 **************************** 事先確認擁有者與群組 有時候我們在寫指令稿時,會使用 chown 自動更改檔案或目錄的擁有者與群組, 此時我們可以在更改擁有者與群組前,先檢查舊的檔案擁有者與群組, 確認舊的擁有者與群組屬性是正確的,才繼續更改其擁有者與群組, 如果舊的擁有者與群組屬性不符合預期,就不會進行任何變更,避免程式出錯。 chown 的 --from 參數可以指定舊的擁有者與群組,檢查無誤後才會進行變更: # 確認舊的擁有者與群組為 root:syslog sudo chown --from=root:syslog myuser:mygroup myfile 也可以只檢查擁有者或群組: # 只確認舊的擁有者為 root sudo chown --from=root myuser:mygroup myfile # 只確認舊的群組為 syslog sudo chown --from=:syslog myuser:mygroup myfile **************************** 參考檔案的擁有者與群組 如果我們想要把檔案的擁有者與群組改為跟另一個參考檔案一樣, 可以使用 --reference 參數: # 將 myfile 的擁有者與群組改為跟 reffile 一樣 sudo chown --reference=reffile myfile 這樣就會把 myfile 的擁有者與群組改為跟 reffile 一樣。 實用範例 chown 指令本身的用法很單純,不過我們可以結合 Linux 上面的各種指令工具,寫出各種應用的指令稿。 結合 find 指令與 chown 指令,找出目前目錄下所有的 *.c 檔,並將這些檔案的擁有者與群組改為 myuser:mygroup: sudo find ./ -name *.c -exec chown myuser:mygroup {} ;