linux chgrp命令与例子

时间:2020-03-05 15:26:04  来源:igfitidea点击:

在Linux权限中,所有包括目录的文件都与用户和组所有权相关联。

此外,文件和目录以及通常分配的权限,可确定访问权限,例如读取,写和执行,最终确定谁具有哪些访问它们的权利。

在本教程中,将介绍如何使用CHGRP命令更改文件或者目录的组所有权。
Linux更改组命令被称为"ChGRP"命令用于更改文件或者目录所属的组名称。
与要求我们指定用户和组名称的Chown命令不同,"CHGRP"只需要该组。

chgrp命令的语法

更改文件所属组的语法非常容易。
只需调用chgrp命令,此后定义了组名称遵循对象名称。

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

group_name属性表示文件或者目录将获取的新组。
此外,我们可以指定GID(组ID)而不是组名称。
在这种情况下,我们需要将GID与加号(+)添加。

使用chgrp命令更改文件组

在本节中,我们将研究如何更改文件的组所有权。
在使用CHGRP命令更改文件组之前,建议首先验证文件所属的当前组。
这可以使用ls命令轻松完成,以打印文件的文件权限,如图所示:

$ls -l

下面的示例打印出Doc目录中名为"settings.py"的文件的文件权限。

从上面的输出,文件属于用户的"Winnie"和"Winnie"。
要从"Winnie"将文件的组更改为"oniTorad"组,请运行chgrp命令,如图所示:

$chgrp theitroad settings.py

但是,在大多数情况下,在将文件或者目录的组作为常规用户更改时,我们将遇到不允许的"CHGRP操作"(如下图像中显示的错误)。
错误表示用户没有足够的权限来更改文件的组所有权。

此挑战的解决方法是将常规用户添加到Sudoers组并调用sudo命令,如下所示:

$sudo chgrp theitroad settings.py

从上面的输出中,我们可以看到我们在调用sudo命令并提交密码后,我们已经成功将小组更改为"oniTorad"。

此外,我们可以在使用Chgrp命令时将多个文件指定为参数,如下所示:

$sudo chgrp group_name file_1 file_2 file_3

在下面的示例中,我们有3个文件:settings.pyfile1.txtfile2.txt都属于组'winnie'。
让我们现在将群组所有权更改为"oniTorad"。
语法将是:

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

递归更改组所有权

有时,我们可能需要递归地更改目录的所有文件和子目录的组。
要递归更改组名称,请使用以下语法中显示的-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