如何在 Linux 中使用 chown 命令更改文件/组所有者

短缺 改变所有权, command 是一个命令行实用程序,用于更改文件或目录甚至链接的用户或组所有权。 Linux 的理念是每个文件或目录都由具有特定访问权限的特定用户或组拥有。

使用不同的示例,我们将尝试查看 chown 命令. Chown 命令采用了非常简单直接的语法。

$ chown OPTIONS USER: GROUP 文件

让我们简要地充实参数:

属性 用户 指将拥有该文件的用户的用户名。 您可以指定用户名或 用户标识 ( 用户身份)。 与此同时, 团体 option 表示运行命令后文件将获取的新组的名称。 file 选项代表一个常规文件或目录,甚至是一个符号链接。 这是可以更改权限的三个实体。

需要注意的几点:

1) 当 用户 选项单独指定,文件/目录的所有权更改为指定用户的所有权,而组所有权保持不变。 下面是一个例子:

$ chown john file1.txt

在上面的命令中,文件 file1.txt 的用户所有权从当前用户更改为用户 john。

2) 如果 USER 选项前面是一个完整的冒号,即 用户: 并且未提供组名,则用户拥有文件的所有权,但文件的组所有权切换到用户的登录组。 例如:

$ chown john: file1.txt

在此示例中,用户 john 拥有文件 file1.txt 的所有权,但该文件的组所有权更改为 john 的登录组。

3) 当用户和组选项都用冒号分隔时指定,即 用户:组 – 其中没有任何空格 – 该文件具有指定的新用户和组的所有权

$ chown john:john file1.txt

在上面的示例中,该文件采用用户 john 的用户和组所有权。

4) 当 USER 选项被省略而 group 选项前面有完整的冒号时 :团体 然后,只有文件的组所有权发生变化。

如何查看文件权限

要查看文件权限,只需使用 ls -l 命令 后跟文件名

$ ls -l 文件名

例如:

$ ls -l file1.txt

从输出中,我们可以看到该文件归用户所有 linux技术 哪个和属于该组 linux技术 分别在第 3 和第 4 列。

如何使用 chown 命令更改文件所有者

在更改权限之前,始终调用 sudo 如果您不是以 root 用户身份工作。 这为您提供了更改文件的用户和组所有权的提升权限。

要更改文件所有权,请使用以下语法:

$ sudo chown 用户文件名

例如,

$ sudo chown james file1.txt

从输出中,您可以清楚地看到文件的所有权已从 linux技术 给用户 詹姆士.

或者,您可以不使用用户名,而是传递用户的 UID。 要获取 UID,请查看 /etc/passwd 文件。

$ cat /etc/passwd | grep username

从下面的例子中,我们可以看到用户 linuxtechi 的 UID 是 1002

要将文件所有权改回 linuxtechi 用户,我们将执行以下命令:

$ sudo chown 1002 file1.txt

如何使用 chown 命令更改组所有者

如前所述,要更改文件的组所有者,请省略用户并简单地在组名前加上一个完整的冒号。

$ sudo chown : 组文件

例如,将 file1.txt 的组所有者从 linux技术码头工人,我们执行了命令:

$ sudo chown :docker file1.txt

如何更改文件的文件所有者和组所有者

如果要更改文件所属的所有者和组,请指定用完整冒号分隔的用户和组选项,如下面的语法所示。 确保选项和冒号之间没有空格。

$ sudo chown 用户:组文件名

例如,以下命令将文件 file1.txt 的所有权更改为 user 詹姆士 和组 重复 使用 ls 命令验证。

$ sudo chown james:redis file1.txt

如何递归更改文件所有权

对目录应用权限时,您可能希望递归应用更改,即使所有权更改下降并应用于文件和子目录。 为了实现这一点,用户使用递归选项 -R 或者 –递归 指示。

$ sudo chown -R 用户:组目录

例如,下面的命令将 /var/www 目录中的所有文件和文件夹的所有权分配给 www-data 组。

$ sudo chown -R :www-data /var/www

下面的示例将目录报告以及目录中所有文件和文件夹的所有权分配给用户 linuxtechi。

$ sudo chown -R linuxtechi reports

如何使用参考文件更改所有权

最后,您可以使用一种巧妙的方法来更改文件的所有权,那就是使用参考文件。 使用 chown 命令,您可以使用另一个文件作为参考点来更改文件的用户和组所有权。

语法如下所示:

$ chown –reference=ref_file 文件

假设您要将 file1.txt 的用户和组所有权分配给另一个文件 file2.txt。 你会怎么做? 这在下面的命令中说明。

$ chown --reference=file1.txt file2.txt

上面的输出证实了 文件2.txt 继承用户和组的所有权 文件1.txt.在命令中,file1.txt为参考文件。

结论

Chown 命令是一个强大的工具,用于管理文件和目录所有权。 有关其他信息,请查看 chown 手册页。

$ man chown

还阅读Linux Zip 和 Unzip 命令及示例