chgrp 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于用户与权限命令族(见用户与权限命令族)。它只改"组",不动"所有者"。
chgrp(change group,改属组)只修改文件/目录的所属组,不影响所有者。和 chown(见chown)相比,它更专一。
一、基本用法
bash
chgrp www-data config.ini # 把属组改成 www-data
chgrp -R devteam ./project # 递归改整个目录树的属组普通用户只能把文件的组改成自己所属的组(不能随便给别人组);root 不受限。
-R递归处理目录及其内容,批量改属组必备。
二、与 chown 的等价写法
bash
chgrp devteam file # 只改组
chown :devteam file # 等价:chown 用 :组 只改组
chown :group file和chgrp group file效果完全一样。记不住 chgrp 就用 chown 的:组写法也行。两者选一即可。
三、递归与符号链接
bash
chgrp -R -h devteam symlink # -h 只改链接本身属组,不跟随默认
chgrp -R会跟随软链接改到目标文件(可能改错对象)。加-h只改链接文件自己的属组,不改它指向的东西——处理含软链接的目录时小心这点。
四、实战:协作目录改组
bash
chgrp -R devteam /srv/app # 让 devteam 组成员都能按组权限访问团队协作时,把共享目录属组设成团队组、配合组写权限(
chmod g+w,见chmod),组员就能共同读写,不必每人都是 owner。
一句话总结
chgrp = 只改文件属组(不影响所有者):chgrp group file;-R 递归改目录树;等价于 chown :group file(见chown);普通用户只能改到自己所属的组、root 不受限;-h 只改软链接自身不改目标。常配合 chmod g+w 做团队共享目录。