如何使用chown命令在Linux中更改所有权
Linux中的Chown命令允许我们更改文件和目录的所有权。
Linux中chown命令的例子
以下是Chown命令的语法看起来像:
chown [options] user_spec files
请记住,Chown是一个管理命令,因此我们需要根或者有sudo权限,以便通过chown命令进行更改。
我希望你知道如何添加sudo用户。
否则,我们将看到这样的错误:
chown: changing ownership of 'agatha.txt': Operation not permitted
现在让我们看看如何使用Chown命令使用示例。
这是我要使用的示例集:
-rw-r--r-- 1 igi igi 456 Jan 24 09:30 agatha.txt drwxr-xr-x 2 igi igi 4096 Jan 24 09:31 mydir drwxr-xr-x 3 igi igi 4096 Jan 24 09:30 new -rw-r--r-- 1 igi igi 356 Jan 24 09:30 sherlock.txt
1.更改或者设置文件的用户所有权
要更改文件的所有权,请使用此时尚的命令:
sudo chown user_name file_name
我们也可以使用UID(用户ID)而不是用户名。
这是它使得更改的示例:
Hyman@theitroad:~/tutorial$sudo chown theitroad agatha.txt Hyman@theitroad:~/tutorial$ls -l agatha.txt -rw-r--r-- 1 theitroad igi 456 Jan 24 09:30 agatha.txt
正如我们可以看到文件的所有者已更改为"igi"的"theitroad",但该组仍然是"igi"。
让我向我们展示如何更改用户所有权和组所有权。
2.更改用户和群组所有权
要更改文件的用户和群组所有权,我们可以使用像这样的列分隔的用户名指定组:
sudo chown user_name:group_name file_name
当然,我们可以分别使用UID和GID而不是用户名和组名。
Hyman@theitroad:~/tutorial$sudo chown theitroad:adm sherlock.txt Hyman@theitroad:~/tutorial$ls -l sherlock.txt -rw-r--r-- 1 theitroad adm 356 Jan 24 09:30 sherlock.txt
正如我们可以在上面的示例中看到的,我将文件Sherlock.txt的用户更改为"theitroad"和组到'ADM'。
3.将组更改为默认的用户组
每个用户都有一个默认或者主组。
如果用户创建新文件或者目录,则此主组自动成为文件的组所有者。
我们可以使用ID命令列出默认用户的默认组。
现在,如果要将文件的组所有权更改为默认的用户组,则应在冒号后留下组名。
sudo chown user_name: file_name
正如我们在下面的示例中看到的,Sherlock.text文件用户所有者'theitroad'和Group Owner'Adm'。
我将所有者改为'igi'但没有提供组名。
然而,它将集团从"ADM"改为默认的"igi"组。
Hyman@theitroad:~/tutorial$ls -l sherlock.txt -rw-r--r-- 1 theitroad adm 356 Jan 24 09:30 sherlock.txt Hyman@theitroad:~/tutorial$sudo chown igi: sherlock.txt Hyman@theitroad:~/tutorial$id igi uid=1000(igi) gid=1000(igi) groups=1000(igi),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare),999(docker) Hyman@theitroad:~/tutorial$ls -l sherlock.txt -rw-r--r-- 1 igi igi 356 Jan 24 09:30 sherlock.txt
4.仅更改组
如果我们只想在不被用户所有者打扰的情况下更改组,则可以使用如下所示的chown命令:
sudo chown :group_name file_name
在下面的示例中,我将组所有权设置为sudo而不触摸用户所有权:
Hyman@theitroad:~/tutorial$ls -l agatha.txt -rw-r--r-- 1 theitroad igi 456 Jan 24 09:30 agatha.txt Hyman@theitroad:~/tutorial$sudo chown :sudo agatha.txt Hyman@theitroad:~/tutorial$ls -l agatha.txt -rw-r--r-- 1 theitroad sudo 456 Jan 24 09:30 agatha.txt
5.递归更改用户的用户和群组所有权
在所有上述命令中,我们可以用目录替换文件,它将与更改目录的所有权一样相同。
这里的一个问题是,默认情况下,目录内的内容的所有权不会更改。
要更改目录的所有权以及目录中的所有内容,可以使用递归选项-r。
sudo chown -R user_name:group_name directory_name
6.将相同的用户和组所有权设置为参考文件
我们可以使用文件作为引用,并以这种方式根据参考文件更改文件和组所有权:
sudo chown --reference=file1.txt file2.txt
在下面的示例中,文件agatha.txt已被用作参考。
如我们所见,Sherlock.txt的所有权已经在Agatha.txt的基础上更改。
Hyman@theitroad:~/tutorial$ls -l agatha.txt sherlock.txt -rw-r--r-- 1 theitroad sudo 456 Jan 24 09:30 agatha.txt -rw-r--r-- 1 igi igi 356 Jan 24 09:30 sherlock.txt Hyman@theitroad:~/tutorial$sudo chown --reference=agatha.txt sherlock.txt Hyman@theitroad:~/tutorial$ls -l agatha.txt sherlock.txt -rw-r--r-- 1 theitroad sudo 456 Jan 24 09:30 agatha.txt -rw-r--r-- 1 theitroad sudo 356 Jan 24 09:30 sherlock.txt