4

Linux chgrp 命令修改文件与目录(文件夹)所属组

 1 year ago
source link: https://www.myfreax.com/chgrp-command-in-linux/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Linux chgrp 命令修改文件与目录(文件夹)所属组

Linux chgrp 命令修改文件与目录(文件夹)所属组

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

本教程介绍如何在 Linux 使用 chgrp 命令更改命令更改文件目录所属组。包括 chgrp 命令语法介绍。

修改文件组的所有权,符号链接组的所有权,递归修改组所有权以及使用 GID 或者组名来修改组的所有权。

chgrp 命令

chgrp 命令的语法形式是 chgrp [OPTIONS] GROUP FILE..GROUP 可以是组的名称或组 ID 也就是 GID,GID 必须以 + 符号作为前缀。

FILE.. 可以是一个或多个文件与目录的名称,当指定多个文件或者目录,请使用多个空格进行分隔。

chown 命令不同的是,chown 命令允许您修改文件目录的所有者,chgrp 修改文件或者目录组的所有权。

要找出文件的所属组,请运行命令 ls -al。只有 root 用户或具有 sudo 权限的用户才能修改文件目录的所属组。

chgrp [OPTIONS] GROUP FILE..

修改文件目录组的所有者

要修改文件目录的所属组,请运行 chgrp 命令,后跟组的名称,最后是目标文件或者目录作为参数。

例如 sudo chgrp www-data filename 命令修改 filename 文件的所属组为 www-data

chgrp www-data filename

如果您以没有 sudo 权限的用户运行命令,则会收到操作不允许的错误消息 Operation not permitted 。

默认情况下,chgrp 命令不产生任何输出,成功时返回退出代码 0。要验证是否成功修改,请运行命令 ls -al

sudo chgrp www-data filename
ls -al filename

您还可以将多个文件或者目录作为参数传递给 chgrp 命令。

sudo chgrp www-data file1 file2 dir1

使用chgrp 命令的 -v 选项获取正在处理的文件信息。

sudo chgrp -v www-data file1 file2

也可以使用 GID 代替组名。

chgrp +1000 filename
changed group of 'file1' from nginx to www-data
group of 'file2' retained as www-data

修改软链接所属组

在不进行递归修改文件目录所属组时,chgrp 命令的默认行为是修改软链接的目标文件所属组,而不是软链接本身。

例如命令 sudo chgrp www-data symlink1 修改软链接 symlink1 的目标文件所属组,软链接文件本身的所属组不会被修改。

sudo chgrp www-data symlink1

在修改软链接文件目录所属组时,你很有可能您会看到错误消息 cannot dereference ‘symlink1’: Permission denied。

发生错误是因为在大多数 Linux 发行版的软链接都受到保护并且您无法对目标文件进行操作。

要启用或者禁用软链接的保护,可以在 /proc/sys/fs/protected_symlinks 文件指定。1 表示启用,0 表示禁用。我们建议不要禁用软链接保护。

当遇到受保护符号链接时,可以尝试使用 chagrp 命令的 -h 选项,该选项将会尝试 修改符号链接文件的所有权,然后再修改目标的所属组。

sudo chgrp -h www-data symlink1

递归修改文件目录所属组

要递归更改所有文件和目录组的所有权,请使用chgrp 命令的 -R 选项。如果仅指定 -R 选项 chgrp 命令不会遍历软链接,即不会修软链接指向的目标文件。

但你可以使用 chgrp 命令的 -h 选项修改软链接指向的目标文件所属组。如果软链接的目标文件是一个目录,你还需要指定 -H 选项遍历目录。

除此之外你还需要使用 -L 选项遍历链接到目录的每个符号链接,在大多数情况,不建议使用 -L-H 选项,因为这可能会导致系统混乱或带来安全风险。

chgrp -R www-data /var/www
chgrp -hR www-data /var/www #include symlinks

chgrp 命令修改文件,目录和符号链接目标文件目录所属组。尽管您可以使用更流行的 chown 命令来修改文件目录的所属组。

chgrp 命令具有易于记忆的简单语法。如果您有任何问题或反馈,请随时发表评论。

微信公众号

支付宝打赏

myfreax 淘宝打赏

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK