在Linux上使用Chgrp命令修改组

具有Linux权限,所有文件(包括目录)都与用户和组所有权相关联。此外,文件和目录以及通常分配的权限(确定读取,写入,执行和其他权限)最终确定谁有权访问哪些权限。

本教程显示了如何使用chgrp命令来更改文件或目录的组所有权。 Linux组更改命令称为: chgrp 用于重命名文件或目录所属的组。与chown命令不同,choown命令需要您同时指定用户名和组名, chgrp 只需要组。

chgrp命令语法

更改文件所属组的语法非常简单。只是 chgrp 运行命令,然后在对象名称之后定义组名称。

$  chgrp OPTION group_name  /path/to/file or directory

group_name属性表示文件或目录将获得的新组。另外,您可以指定GID(组ID)而不是组名。在这种情况下,您需要在GID上添加一个加号(+)。

使用chgrp命令更改文件组

在本节中,我们将研究如何更改文件的组所有权。使用chgrp命令更改文件组之前,建议检查文件所属的当前组。通过使用ls命令并按如下所示打印文件的文件许可权,可以轻松实现此目的:

$ ls -l

以下示例显示文件权限 settings.py 在docs目录中。

chgrp命令更改组Linux

从上面的输出中,该文件属于用户“ Winnie”和组“ Winnie”。例如,要将文件组从“ Winnie”更改为“ linoxide”,请运行chgrp命令,如下所示:

$ chgrp linoxide settings.py

但是,在大多数情况下,当您以普通用户身份更改一组文件或目录时, chgrp operation not permitted 错误显示在下图中。此错误表明用户没有足够的权限来更改文件的组所有权。

chgrp权限错误

此问题的解决方法是将普通用户添加到sudoers组,然后调用sudo命令,如下所示。

$ sudo chgrp linoxide settings.py

linux chgrp命令

从上面的输出中,您可以看到在调用sudo命令并发送密码后,我已成功将组更改为“ linoxide”。

另外,使用chgrp命令时,可以将多个文件指定为参数,如下所示:

$ sudo chgrp group_name file_1 file_2 file_3

在下面的示例中,有三个文件。 settings.pyfile1.txtfile2.txt 所有这些都属于“ Winnie”组。让我们将组的所有权更改为“ linoxide”。语法为:

$ sudo chgrp linoxide settings.py file1.txt file2.txt

chgrp Linux命令

递归更改组的所有权

在某些情况下,您可能需要递归更改目录中所有文件和子目录的组。要递归更改组名, -R 以下语法中显示的标志。

$ sudo chgrp group-name directory

例如,更改所有权 /var/www/html/nextcloud 目录及其内容 www-data group,运行以下命令:

$ sudo chgrp -R www-data /var/www/html/nextcloud

更改符号链接的组所有权

符号链接保留组所有权,因为递归选项不会遍历符号链接。要将群组所有权应用于符号链接, -h 显示的参数:

$ sudo chgrp -Rh www-data /var/www/html/nextcloud

结论

在本教程中, chgrp Linux命令。您可以使用chown命令执行相同的操作,但是使用chgrp命令可以以更简单的方式进行操作。

有人问,当chown命令存在时,为什么chgrp存在。 Chgrp代码的建立年代久远,并且chown最初无法建立群组。

注意:仅更改组的调整 chown :group 在许多平台上,还没有可移植性或标准。

感谢您的阅读。请在下面的评论部分中告诉我们。

Sidebar