chown(改变所有者)命令用于改变一个文件或目录的所有权。在这篇文章中,我们讨论了文件管理中常用的chown命令。
目录:
- 简介
- 语法
- 组,GID,UID
- 列出权限
- 改变所有权
- 总结
- 参考资料
介绍
chown(改变所有者)命令用于改变一个文件或目录的所有权。
Linux中的每个文件都与一个所有者和一个组相关联。
权限、访问权被分配给一个组、一个所有者和其他人,限制谁可以读、写或执行文件内容。 用户
将有他们的属性,如用户ID、名字等。用户被放入组中,以方便用户管理,因为组允许在组一级而不是在个人一级设置权限。
语法
语法如下:
chown [OPTION]… [OWNER][:[GROUP]] FILE…
chown [OPTION]… –reference=RFILE FILE…
常用的选项包括:
- -v, 显示每个被处理的文件的诊断
- -c, 显示像verbose一样的输出
- -f或-silent或*--quiet*,用于抑制错误信息
- -R或*--递归*,用于对目录和文件执行递归操作
- --dereference,用于影响每个符号链接的引用者
- -h或*--no-dereference*,影响符号链接而不是被引用的文件
组,GID,UID
要获得所有的组,我们写:
groups
要获得组ID和用户ID,我们写道:
id
列出权限
要列出一个文件的权限,我们要写:
ls -l file.txt
输出:
-rw-r--r-- 1 root root 0 Jan 12 07:00 test
当命令被执行时,我们可以看到文件信息,如用户、组和其他组的权限,我们还可以看到所有者和修改或访问时间。
改变所有权:
要改变一个文件测试的所有者,我们写如下:
sudo chown user test
输出:
-rw-r--r-- 1 user root 0 Jan 12 07:00 test
现在用户是文件test的所有者。
要改变多个文件的所有权,我们写:
chown user file1 file2 file3
我们还可以使用id命令中的UID来改变所有权:
sudo chown 767 test
ID为767的用户现在将拥有文件test。
要改变一个文件的组,我们可以写道:
sudo chown :group1 test
上面的命令将test的组名改为group1。
输出:
-rw-r--r-- 1 user group1 0 Jan 12 07:00 test
我们还可以使用从groups命令中获得的组IDGID:
sudo chown :78908 test
78908代表组的ID。
要改变多个文件的组,即通过GID,我们写道:
sudo chown :78908 file1 file2 file3
其中78908是文件1、文件2和文件3所属的组的ID。
我们可以将改变用户和改变组结合在一个命令中,如下所示:
sudo chown user:group1 test
上面的命令将用户改为user,并将文件分组到group1。
为了递归地改变所有权,也就是改变一个目录中所有文件的所有者,我们使用*-R*选项,如下所示:
sudo chown -hR user:group1 test
符号链接是对一个现有物理文件的引用。要为一个文件测试创建一个符号链接,我们要写:
ln -s test symlink
通过写:
chown user symlink
我们将test的所有权改为用户,但不改变符号链接的所有权。
-h选项被用来改变符号链接的所有权,如下所示:
chown -h user symlink
我们也可以通过写来改变特定所有权的归属:
chown --from=user root test
上面的命令将所有权从用户改为root,而当前的所有者必须是用户。
我们还可以从一个特定的组中改变所有权,如下所示。
chown --from=:group1 root test
上面的命令从group1改变所有权。
我们使用--reference=ref_file选项,将指定文件的用户和组的所有权改为指定参考文件的用户和所有者:
chown --reference=file1 file2
上面的命令将文件1的所有权(用户和组)改为文件2的所有权。
总结
Linux中的每个文件都与一个组的所有权和一个所有者相关联。 Chown代表改变所有者。它只能由超级用户使用
参考资料
- 在Linux终端执行man chown或chown --help命令。