chgrp 是专为修改文件属组设计的安全命令,语法为 chgrp 组名/ gid 文件,支持批量、递归(-r)、查看变更(-v)、参考复制(--reference)等操作,需满足权限前提。

直接用 chgrp 就行,它是专为改属组设计的命令,比混用 chown :group 更安全、更清晰。
基础用法:改单个文件或目录的属组
语法很简单:chgrp 组名 文件。组名可以是系统中已存在的组名,也可以是 GID 数字。
-
chgrp developers script.sh—— 把script.sh的属组改成developers -
chgrp 1002 config.ini—— 用 GID 替代组名,避免拼写错误
批量与递归操作
一次处理多个目标很常见,尤其部署服务或整理协作目录时。
-
chgrp www-data *.html *.css—— 用通配符批量修改当前目录下匹配的文件 -
sudo chgrp -R nginx /var/www/html/—— 递归修改整个目录树(注意:普通用户通常需sudo才能改系统目录)
实用技巧与注意事项
加点选项能让操作更可控、更可查。
- 加
-v查看每一步变更:chgrp -v logs access.log error.log - 用
--reference=参考文件复制属组:chgrp --reference=template.conf app.conf - 符号链接默认改的是它指向的目标;要改链接本身属组,得加
-h(仅 root 可用) - 执行前确认组存在:
getent group nginx或groups查自己所属的组
权限前提不能忽略
不是谁都能随便改属组。
- 你必须是该文件的拥有者,或者你是 root
- 你想指定的目标组,必须是你自己所属的组之一(
id -Gn可查) - 如果报
Operation not permitted,大概率是不满足上述任一条件











