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