首页 > 编程知识 正文

linux中chgrp命令详解,linux chgrp命令的用法

时间:2023-05-03 17:19:56 阅读:262858 作者:1395

在Linux中,每个文件都与一个所有者和一个组相关联,并具有确定哪些用户可以读取,写入或执行该文件的权限。

chgrp命令更改给定文件的组所有权。

本指南介绍了如何使用chgrp。

chgrp命令语法

chgrp命令采用以下形式:chgrp [OPTIONS] GROUP FILE..GROUP,新组的名称或组ID(GID)。数字GID必须以+符号为前缀。

FILE..,一个或多个文件的名称。

与允许您更改用户和组所有权的chown命令不同,chgrp仅更改组所有权。

要找出文件属于哪个组,请使用ls -l命令。

只有root用户或具有sudo特权的用户才能更改文件的组所有权。

如何更改文件组所有权

要更改文件或目录的组所有权,请调用chgrp命令,后跟新的组名和目标文件作为参数。

例如,要将文件filename的组更改为www-data,可以运行:chgrp www-data filename

如果您以无特权的用户身份运行该命令,则会收到“不允许操作”错误。要消除错误,请使用-f选项运行命令。默认情况下,成功时,chgrp不产生任何输出并返回零。

您还可以将多个文件作为参数传递给chgrp命令:chgrp www-data file1 file2 dir1

使用-v选项获取有关正在处理的文件的信息:chgrp www-data file1 file2changed group of 'file1' from nginx to www-data

group of 'file2' retained as www-data

要仅打印有关实际更改组的文件的信息,请使用-c而不是-v。

可以使用数字组ID(GID)代替用户名。以下示例将文件的网上论坛所有权更改为GID为1000的新网上论坛:chgrp +1000 filename

如何更改符号链接组的所有权

当不递归操作时,chgrp命令的默认行为是更改符号链接目标的组所有权,而不是符号链接本身。

例如,如果您尝试更改指向/opt/file1的符号链接symlink1的组,则chgrp将更改符号链接指向的文件或目录的所有权:chgrp www-data symlink1

很有可能您会收到“无法取消引用'symlink1':权限被拒绝”错误,而不是更改目标组。

发生错误是因为默认情况下,大多数Linux发行版上的符号链接都受到保护,并且您无法在目标文件上进行操作。此选项在/proc/sys/fs/protected_symlinks中指定。 1表示启用,0表示禁用。我们建议不要禁用符号链接保护。

要更改符号链接本身的组所有权,请使用-h选项:chgrp -h www-data symlink1

如何递归更改组所有权

要递归更改给定目录下所有文件和目录的组所有权,请使用-R选项。

例如,以下命令会将/var/www目录下所有文件和目录的所有权更改为www-data组:chgrp -R www-data /var/www

如果指定了递归选项chgrp,则不会遍历符号链接,也不会更改符号链接。要更改符号链接的组所有权,请通过-h选项:chgrp -hR www-data /var/www

递归更改组所有权时可以使用的其他选项是-H和-L。

如果传递给chgrp命令的参数是符号链接,则-H选项将导致命令遍历它。 -L告诉chgrp将每个符号链接遍历到遇到的目录。在大多数情况下,不应使用这些选项,因为这可能会导致系统混乱或带来安全风险。

结论

chgrp更改文件,目录和符号链接的组所有权。

尽管您可以使用更流行的chown命令来更改组,但chgrp具有易于记忆的简单语法。

有关chgrp命令的更多信息,请访问chgrp手册页或在终端中输入man chgrp。

如果您有任何问题或反馈,请随时发表评论。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。