Linux 中的 Chown 命令及示例

文件和资源的管理很快就会成为 Linux 管理员头疼的问题,因为它是一个多用户操作系统。 管理员必须管理系统上的所有可用资源。 他们必须确保只有授权用户才有权访问和修改某些文件。

管理员可以利用许多内置命令(如 chattr 和 chown)来帮助他们进行文件管理:

chown 命令是什么?

chown(change owner 的缩写)命令用于在基于 Linux 的操作系统中更改文件和目录组的所有权。 它有助于使文件更安全,并对未经授权的用户进行限制。

在本操作指南中,我们将学习在 Linux 中使用 chown 命令,但让我们首先讨论其语法:

chown [OPTION] USER:GROUP FILE/Directory 

chown 命令接受一个选项、一个用户和一个组名以及文件/目录的名称。 chown 会将文件/目录的所有权/组更改为指定的用户和组。 下面给出了与 chown 命令一起使用的一些最常见的选项:

  • --from=CURRENTOWNER_NAME:CURRENTGROUP_NAME 当且仅当当前所有者和/或组的名称与此处指定的名称匹配时,更改文件/目录的所有者和/或组。
  • -R, --recursive 更改目录中存在的每个子目录和文件的所有权/组
  • --help 显示 chown 命令的帮助菜单
  • --version 显示chown命令的版本号信息

chown 命令在大多数 Linux 发行版中都可用,但在本文中,我们将以 Ubuntu 21.04 为例进行演示。

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

我们只需要将文件名以及新所有者的用户名提供给 chown 命令即可在 Linux 中更改文件的所有权:

chown USER_NAME FILE_NAME 

例如,如果我们有一个名为 file.txt 的文件,并且需要将其所有权从名为 rahul 的用户更改为名为 john 的用户,那么我们将使用以下命令:

sudo chown john file.txt  

该文件的所有权已成功从 rahul 更改为 john。 这可以通过运行下面给定的命令来验证:

ls -l  
仅使用 Chown 命令更改文件所有者

从上面的屏幕截图可以看出,文件的所有权已成功从 rahul 更改为 john。

使用 Chown 更改文件的组所有者

要更改文件的组,我们只需要将文件名后跟冒号 (:) 以及组名提供给 chown 命令:

chown :GROUP_NAME FILE_NAME 

现在我们将file.txt文件从教师组转移到学生组:

sudo chown :students file.txt  
仅使用 chwon 命令更改文件组所有者

在单个 chown 命令中更改所有者和组

我们需要为 chown 命令提供以冒号分隔的用户名和组名,以更改文件的所有者和组:

chown USER_NAME:GROUP_NAME FILE_NAME 

现在我们将 file.txt 文件的所有权改回 rahul 和教师组:

sudo chown rahul:teachers file.txt  
使用 chown 命令更改自己和分组使用 chown 命令更改所有者和组

如果我们没有在冒号后指定组,那么文件的所有权将转移到指定用户的登录组:

sudo chown john: file.txt  
使用 Chown 命令将所有者和组设置为相同使用 chown 命令将组设置为与所有者相同

如何更改目录的所有者和组

更改目录的所有权与更改文件的所有权没有什么不同。 在这里,我们将名为 dir 的目录的所有权从 rahul:teachers 更改为 john:students:

sudo chown john:students dir  

但是此命令不会更改目录中存在的子目录和文件的所有权。 我们可以通过进入 dir 目录并运行 ls -l 命令来验证这一点:

cd dir  ls -l  

dir 目录中的所有文件和子目录仍然属于 rahul。 这可以通过使用 -R 选项和 chown 命令来更改。 现在我们将返回到 dir 目录所在的 Documents 目录并再次运行 chown 命令; 但这次我们将使用 -R 选项运行它:

sudo chown -R john:students dir  

结论

chown 命令是系统管理员必不可少的工具。 它允许他们限制未经授权的用户访问某些文件。 这有助于保护重要文件并防止它们被意外修改和删除。

chown 命令只能由具有以下权限的用户使用 sudo 特权或root用户; 普通/普通用户即使是文件的所有者也不能更改文件/目录的所有权/组。

在这篇文章中,我们讨论了 chown 命令是什么以及如何使用它来帮助我们进行文件管理。 此外,我们还学会了使命令递归,因此它适用于目录中存在的所有文件和子目录。