Linux中的chown命令介绍

206 阅读4分钟

chown(改变所有者)命令用于改变一个文件或目录的所有权。在这篇文章中,我们讨论了文件管理中常用的chown命令。

目录:

  1. 简介
  2. 语法
  3. 组,GID,UID
  4. 列出权限
  5. 改变所有权
  6. 总结
  7. 参考资料

介绍

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代表改变所有者。它只能由超级用户使用

参考资料

  1. 在Linux终端执行man chownchown --help命令。