Linux Chown命令(更改文件所有权)
在Linux和Unix的操作系统中,所有文件,目录和进程(再次文件)由用户拥有。
该组是一组用户为该对象(文件/目录)共享相同的访问权限(i.e读取,写和执行)。
Chown命令用于Linux,更改文件,目录和符号链接的用户和群组所有权。
在本教程中,将介绍如何使用一些实际示例使用Chown命令。
chown语法
允许查看chown命令的基本语法,如下所示:
chown [OPTIONS] USER[:GROUP] FILE/DIRECTORY
我们可以运行ls -l
命令来打印文件所有权详细信息。
在以下输出中,我们可以看到"myfile.txt"文件由用户'tom'拥有,而该组由"开发人员"拥有:
$ls -l -rw-r--r-- 1 tom developers 0 Apr 4 01:35 myfile.txt
更改文件的所有权
要更改文件的所有权,请使用known与新所有者名称和必须更改所有者的文件名。
以下命令将文件的所有权更改为"myfile.txt"到新用户'tom':
# chown tom myfile.txt
如果命令已成功执行,则不会显示终端上的任何输出。
让验证使用ls -l
命令如下:
# ls -l myfile.txt -rw-r--r-- 1 tom root 623 Dec 10 2012 myfile.txt
更改文件的所有者和组
如果所有者接下来是冒号(:
)和组名(没有空格),则还更改了组名称。
以下示例显示如何更改名为"myfile.txt"的文件的所有者和组:
# chown tom:developers myfile.txt
现在该文件的新所有者是'tom',新的组所有者是'开发人员的组。
# ls -l myfile.txt -rw-r--r-- 1 tom developers 424 Dec 10 2012 myfile.txt
如果在冒号结束后删除组名,则将文件的组更改为指定的用户的登录组:
# chown tom: myfile.txt
# ls -l myfile.txt -rw-r--r-- 1 tom tom 453 Dec 10 2012 myfile.txt
如果提到冒号(:)和组,则只更改文件的组。
在这种情况下,命令就像chgrp命令一样。
# chown :developers myfile.txt
# ls -l myfile.txt -rw-r--r-- 1 tom developers 1579 Dec 10 2012 myfile.txt
递归更改目录的所有权
在给定目录下的所有文件和目录中递归地应用所有权使用-r
选项
在以下示例中,"/var/www/html"下的所有文件和目录的所有权将被递归地更改为"onitad"和组所有权,以"www-data":
# chown theitroad:www-data -R /var/www/html
详细输出
- --verbose
选项显示在终端上更改的所有所有权。
它输出处理的每个文件的诊断。
例如:
# chown -R --verbose jones /home/jones/ changed ownership of `/home/jones/hello' to jones changed ownership of `/home/jones/.emacs' to jones changed ownership of `/home/jones/.bash_history' to jones changed ownership of `/home/jones/.bash_logout' to jones changed ownership of `/home/jones/.bashrc' to jones changed ownership of `/home/jones/file1' to jones
即使未进行更改,冗长选项也会输出每个文件的处理。
但是使用-c
或者- 晶体
选项,仅在更改时报告输出。
更改符号链接的所有权
默认情况下,"Chown""命令不会更改符号链接的所有权,而是将其在目标文件上的所有权更改。
Chmod有一个选项-h
可用于更改符号链接的所有权。
检查以下示例:
# chown -h tom vmlinuz # ls -l total 0 lrwxrwxrwx 1 tom root 31 Apr 5 00:50 vmlinuz -> /boot/vmlinuz-4.15.0-88-generic
将所有权更改为参考文件
我们可以引用来自哪个文件,其中chown`将相同的用户和群组所有权复制到新文件。
在以下命令--reference = myfile1.txt
选项以提供分配给名为'myfile2.txt'的文件的参考文件和所有权:
# chown --reference=myfile1.txt myfile2.txt
沉默的操作
普通用户无法更改其他人所拥有的文件的所有权。
因此,当普通用户尝试更改所有权时,会显示错误。
[tom@node051 ~]$chown tom /etc/ chown: changing ownership of `/etc/': Operation not permitted
但是,如果我们使用-f
或者-silent
或者--quiet
选项,则不会显示错误。
[tom@node051 ~]$chown -f tom /etc/ [tom@node051 ~]$
如何保留根
chmod命令有一个选项--preserve-root
,以防止chmod在/
上递归行动。
应与"-r""方法一起使用此选项以生效。
[root@node051 ~]# chown -c --preserve-root tom / changed ownership of '/' from root to tom
只有"/""的权限将被更改,并且在"/"内部的文件和目录的所有权将保持不变。
[root@node051 ~]# ls -ld / drwxr-xr-x 23 tom root 4096 Nov 19 14:36 / [root@node051 ~]# ls -l total 88 drwxr-xr-x 2 root root 4096 Nov 19 14:33 bin drwxr-xr-x 3 root root 4096 Nov 19 14:36 boot drwxr-xr-x 16 root root 3660 Mar 28 11:09 dev drwxr-xr-x 90 root root 4096 Apr 4 02:28 etc drwxr-xr-x 2 root root 4096 Nov 19 14:35 home lrwxrwxrwx 1 root root 33 Nov 19 14:35 initrd.img -> boot/initrd.img-4.15.0-88-generic lrwxrwxrwx 1 root root 33 Nov 19 14:29 initrd.img.old -> boot/initrd.img-4.15.0-76-generic drwxr-xr-x 22 root root 4096 Nov 19 14:37 lib drwxr-xr-x 2 root root 4096 Nov 19 14:28 lib64 drwx------ 2 root root 16384 Nov 19 14:27 lost+found