文件和资源的管理很快就会成为 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
从上面的屏幕截图可以看出,文件的所有权已成功从 rahul 更改为 john。
使用 Chown 更改文件的组所有者
要更改文件的组,我们只需要将文件名后跟冒号 (:) 以及组名提供给 chown 命令:
chown :GROUP_NAME FILE_NAME
现在我们将file.txt文件从教师组转移到学生组:
sudo chown :students file.txt
在单个 chown 命令中更改所有者和组
我们需要为 chown 命令提供以冒号分隔的用户名和组名,以更改文件的所有者和组:
chown USER_NAME:GROUP_NAME FILE_NAME
现在我们将 file.txt 文件的所有权改回 rahul 和教师组:
sudo chown rahul:teachers file.txt
如果我们没有在冒号后指定组,那么文件的所有权将转移到指定用户的登录组:
sudo chown john: file.txt
如何更改目录的所有者和组
更改目录的所有权与更改文件的所有权没有什么不同。 在这里,我们将名为 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 命令是什么以及如何使用它来帮助我们进行文件管理。 此外,我们还学会了使命令递归,因此它适用于目录中存在的所有文件和子目录。