chown
命令允許您修改指定文件、目錄或符號(hào)鏈接的用戶和組的所有權(quán)。 在本教程中,我們將通過實(shí)例向您展示如何使用 chown
命令。
在 Linux ,所有文件都與一個(gè)所有者以及一個(gè)組相關(guān)聯(lián),并為文件所有者、組成員和其他人分配訪問權(quán)限。
chown 命令
在介紹如何使用該chown
命令之前,讓我們先回顧一下基本語法。 chown
命令表達(dá)式采用以下形式:
chown [OPTIONS] USER[:GROUP] FILE(s)
USER
是所有者的用戶名或用戶 ID (UID)。 GROUP
是組的名稱或組 ID (GID)。 FILE(s)
是一個(gè)或多個(gè)文件、目錄(文件夾)或鏈接的名稱。 數(shù)字 ID 應(yīng)以 +
符號(hào)為前綴。
USER
如果只指定用戶,指定的用戶將成為指定文件的所有者,組所有權(quán)不變。USER:
當(dāng)用戶名后跟一個(gè)冒號(hào):
,并且沒有給出組名時(shí),用戶將成為文件的所有者,文件組所有權(quán)更改為用戶的登錄組。USER:GROUP
如果同時(shí)指定了用戶和組(它們之間沒有空格),則文件的用戶所有權(quán)將更改為指定的用戶,組所有權(quán)更改為指定的組。:GROUP
如果省略 User 并且組以:
冒號(hào)為前綴,則只有文件的組所有權(quán)更改為指定的組。- 如果只給出一個(gè)
:
冒號(hào),而不指定用戶和組,則不會(huì)進(jìn)行任何修改。
默認(rèn)情況下,成功時(shí)。 chown
命令不產(chǎn)生任何輸出并返回零。 可以使用 ls -l
命令找出誰擁有文件或文件屬于哪個(gè)組:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt
|[-][-][-]- [------] [---]
| |
| +-----------> Group
+-------------------> Owner
普通用戶只有在擁有文件時(shí)才能修改文件的組,并且只能修改為他們所屬的組。 管理用戶可以修改所有文件的所有權(quán)。
如何修改文件的所有者
要修改文件的所有者,請(qǐng)使用以下 chown
命令,后跟新所有者的用戶名和目標(biāo)文件作為參數(shù):
chown USER FILE
例如,以下命令會(huì)將名為 file1
文件的所有權(quán)修改為所有者 myfreax
:
chown myfreax file1
要修多個(gè)文件或目錄的所有權(quán),請(qǐng)將多個(gè)文件木使用空格分隔。 下面的命令將文件 file1
和目錄 dir1
的所有權(quán)更改為 myfreax
:
chown myfreax file1 dir1
可以使用數(shù)字用戶 ID (UID) 代替用戶名。 以下示例將會(huì)修改文件 file2 的所有權(quán)為UID 1000 的用戶:
chown 1000 file2
如果數(shù)字就是所有者的用戶名,則所有權(quán)將轉(zhuǎn)移到該用戶名。 為避免這種情況,可以使用 +
作為 UID 的前綴,這樣就可以避免將UID解釋為用戶名 :
chown 1000 file2
如何修改文件的所有者和組
要同時(shí)修改文件的所有者和組,請(qǐng)使用 chown
命令,后跟所有者和組,中間用冒號(hào) :
分隔,中間沒有空格,然后是目標(biāo)文件。
chown USER:GROUP FILE
以下命令會(huì)將名為的文件 file1
的所有權(quán)更改為 myfreax
用戶,組的所有權(quán)為 user
組:
chown myfreax:users file1
如果在冒號(hào) :
后省略組名,文件的組將更改為指定用戶,組的所有權(quán)是指定用戶的主要組:
chown myfreax: file1
如何修改文件所有組
要僅修改文件組的所有權(quán),請(qǐng)使用 chown
命令后跟冒號(hào) :
和組名(它們之間沒有空格)以及目標(biāo)文件作為參數(shù):
chown :GROUP FILE
以下命令將 file1
文件的所屬組更改為 www-data
:
chown :www-data file1
另一個(gè)可用于修改文件組所有權(quán)的命令是 chgrp
.
如何修改符號(hào)鏈接的所有權(quán)
當(dāng)不使用遞歸選項(xiàng)時(shí),chown
命令修改符號(hào)鏈接指向的文件組的所有權(quán),而不是符號(hào)鏈接本身。
例如,如果您嘗試修改符號(hào)鏈接 symlink1
指向的文件 /var/www/file1
用戶和組的所有權(quán):
chown www-data: symlink1
很有可能您不會(huì)修改目標(biāo)文件目錄的所有權(quán),而是會(huì)收到 “cannot dereference ‘symlink1’: Permission denied” 無法取消引用 symlink1 權(quán)限被拒絕的錯(cuò)誤。
出現(xiàn)該錯(cuò)誤是因?yàn)樵诖蠖鄶?shù) Linux 發(fā)行版,默認(rèn)情況下符號(hào)鏈接是受保護(hù)的,您無法對(duì)目標(biāo)文件進(jìn)行操作。
此選項(xiàng)在 /proc/sys/fs/protected_symlinks
中指定。 1
表示啟用, 0
禁用。 我們建議不要禁用符號(hào)鏈接保護(hù)。
要修改符號(hào)鏈接本身組所有權(quán),請(qǐng)使用 chown 命令的 -h
選項(xiàng):
chown -h www-data symlink1
如何遞歸修改文件所有權(quán)
要對(duì)指定目錄的所有文件和目錄進(jìn)行遞歸操作,請(qǐng)使用 chown 命令的 -R
/ --recursive
選項(xiàng):
chown -R USER:GROUP DIRECTORY
以下示例將 /var/www
目錄下的所有文件和子目錄的所有權(quán)更改為為 www-data
所有者和組:
chown -R www-data: /var/www
如果目錄包含符號(hào)鏈接指定 -h
選項(xiàng) :
chown -hR www-data: /var/www
遞歸修改目錄所有權(quán)時(shí)可以使用選項(xiàng)是 -H
和 -L
。
如果傳遞給 chown
命令的參數(shù)是指向目錄的符號(hào)鏈接,則 -H
選項(xiàng)將使命令遍歷它。
-L
指示 chown
遍歷每個(gè)符號(hào)鏈接到遇到的目錄。 通常,您不應(yīng)使用這些選項(xiàng),因?yàn)檫@可能會(huì)弄亂系統(tǒng)或產(chǎn)生安全風(fēng)險(xiǎn)。
使用參考文件
--reference=ref_file
選項(xiàng)允許您將指定文件的用戶和組所有權(quán)更改為與指定參考文件相同的權(quán)限。 如果引用文件是符號(hào)鏈接,chown
將使用目標(biāo)文件的用戶和組。
chown --reference=REF_FILE FILE
例如,以下命令將 file1
的用戶和組所有權(quán)分配給 file2
:
chown --reference=file1 file2
結(jié)論
chown
是一個(gè) Linux/UNIX 命令行程序,用于修改文件的用戶或組所有權(quán)。
要了解 chown
命令的更多信息,請(qǐng)?jiān)L問 chown 手冊(cè)頁或在您的終端運(yùn)行命令 man chown
。
-
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210400 -
文件
+關(guān)注
關(guān)注
1文章
570瀏覽量
24822 -
程序
+關(guān)注
關(guān)注
117文章
3795瀏覽量
81415 -
命令
+關(guān)注
關(guān)注
5文章
696瀏覽量
22112
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論