Linux 文件所有权和组的完整指南Linux 文件所有权和组的完整指南Linux 文件所有权和组的完整指南Linux 文件所有权和组的完整指南
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux 文件所有权和组的完整指南

学习如何处理 Linux 中的文件所有者、组和权限对于系统管理员和临时 Linux 用户来说都很重要。

当您在 Linux 上遇到文件权限问题时,您的挫败感通常与文件所有者或组的设置有关。如果您经常使用 Linux,那么在某个时刻,您将不可避免地必须更改文件或目录的所有者或组设置来解决问题。

在本文中,我们将揭秘 Linux 文件所有者和组的概念,并向您展示它们如何影响谁可以访问和操作系统上的数据。

如何在 Linux 中查找文件的所有者和组

在 Linux 命令行中,您可以使用 ls -l(带有小写 L 的破折号)命令查看所有者和组权限设置。 -l 开关将格式化列中的列表,为您提供比标准 ls 命令输出更多的文件详细信息。

第一列显示文件的类型及其权限设置。第二列显示了文件的链接数(通常为1)。第三和第四个分别显示所有者和小组。他们经常(但并非总是)相同。

第一列中显示的设置代表确定 Linux 中文件权限的位。第一个字符代表文件类型。例如,“-”表示常规文件,“d”表示目录。接下来的三个位(上面突出显示的)代表文件所有者的权限 - r 表示读取,w 表示写入,x 表示执行。

任何未启用的权限都将显示为破折号。然后,在目录列表的第三列中,您会看到拥有该文件的用户。

第一列中的第二组三位(上面突出显示的)表示有权访问此文件的组的权限。它们的工作原理与上面相同。它们可以是破折号,也可以是 r、w 和 x 之一。

如何在 Linux 上更改文件的所有者

对于大多数 Linux 发行版,您需要成为 root 用户或具有管理权限的用户(即您可以使用 sudo)才能更改文件或目录的所有者。

将文件或目录的所有权授予任何用户将使该用户完全自由地对该文件执行任何他们想要的操作。他们将能够读取、修改、删除它,并更改指示其他系统用户可以使用它做什么的权限。

要更改文件或目录的所有者,请使用以下格式的 chown 命令:

sudo chown <user> <file or directory>

更改文件的所有者不会影响该文件的组设置或权限。

如何在 Linux 上更改文件的组设置

如果您是文件的所有者,则可以将其组设置更改为任何现有组。如果您不是所有者,则需要 root 或 sudo 权限。

要更改组对文件或目录的访问权限,请使用以下格式的 chgrp 命令:

chgrp <groupname> <file or directory>

这将根据项目的组权限设置授予所选组的所有成员访问文件或目录的权限。

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

如果您需要修改文件或目录的所有者和组设置,则可以使用单个命令来完成。由于它涉及更改所有者,因此您需要拥有超级用户权限。

要实现此目的,请使用上面的 chown 命令,但指定新所有者和新组,并用冒号分隔,不带空格。

sudo chown <newowner>:<newgroup> <file or directory>

如何使用 Linux 终端创建组

组允许您快速轻松地向多个用户分配访问权限。 Linux 系统上的用户一次可以是多个组的成员。您需要成为 root 用户或具有 sudo 权限才能创建组。

要向系统添加新组,请使用groupadd命令。

sudo groupadd <groupname>

为了确保您的组已创建,您可以使用 getent 命令列出所有组,或将其与 grep 结合使用来查找特定组。

getent group
getent group | grep <groupname>

如果命令的输出显示您尝试创建的组的名称,则表明该组已成功创建,您可以向其中添加用户。您还可以查看我们的 Linux 组管理指南,了解有关设置新组的更多详细信息。

如何在 Linux 上将用户添加到组

将用户添加到组是通过 usermod 命令完成的。同样,您将需要超级用户权限,并且用户和组都必须已经存在。以下命令将用户添加到组中:

sudo usermod -a -G <groupname> <username>

上面命令中的-a开关代表append并且很重要。如果您在不使用 -a 标志的情况下将用户添加到组中,则该用户将从其可能所属的任何其他组中删除。 -G 标志表示您要将用户添加到开关后面的组名称中。

如何从组中删除用户

使用gpasswd 命令从组中删除用户。按以下格式输入命令(使用 sudo)。

sudo gpasswd -d <username> <groupname>

这将从指定组中删除指定用户,并保持任何其他组成员身份不变。

如何使用 Linux 终端删除组

最后,管理系统上的组时您需要知道的最后一件事是删除组。首先,需要注意的是组必须是空的。如果要删除的组很小,可以使用上面的命令手动删除每个成员。

如果群组的成员较多,并且您需要在删除群组之前将其删除,则可以使用 groupmems 命令一次性删除所有成员。输入以下格式的命令以删除特定组中的所有用户:

sudo groupmems -p -g <groupname>

从组中删除所有成员后,您可以使用 groupdel 命令从系统中删除该组,如下所示。

sudo groupdel <groupname>

Linux 用户组为您提供更大的控制权

使用上面的命令,您将能够管理 Linux 系统上任何文件或目录的所有者和组访问设置。

如果您或系统上的用户在访问某些内容时遇到问题,确保正确设置所有者和组权限通常是找到解决方案的良好第一步。

©2015-2025 艾丽卡 support@alaica.com