chgrp 命令用于修改文件或目录的所属组(group ownership)。通过改变文件的组所有权,可以控制哪些用户组能够访问该文件。
chgrp [选项] 组名 文件或目录
或者使用GID:
chgrp [选项] GID 文件或目录
# 将文件file.txt的组改为developers组
chgrp developers file.txt
# 使用GID修改文件组(假设developers组的GID是1001)
chgrp 1001 file.txt
# 递归修改整个目录的组
chgrp -R developers /project/
# 显示详细的修改过程
chgrp -v developers file1.txt file2.txt
# 输出:group of 'file1.txt' changed to developers
# 输出:group of 'file2.txt' changed to developers
# 只在组发生改变时显示信息
chgrp -c developers *.txt
# 输出:group of 'file1.txt' changed to developers
# 将file1.txt的组设置为与file2.txt相同
chgrp --reference=file2.txt file1.txt
# 创建项目目录
mkdir myproject
cd myproject
# 创建一些文件
touch main.py config.json README.md
# 查看当前文件信息
ls -l
# 输出:-rw-r--r-- 1 user user 0 Jan 10 10:00 main.py
# 输出:-rw-r--r-- 1 user user 0 Jan 10 10:00 config.json
# 输出:-rw-r--r-- 1 user user 0 Jan 10 10:00 README.md
# 将项目文件改为developers组
chgrp developers *.py *.json *.md
# 验证修改
ls -l
# 输出:-rw-r--r-- 1 user developers 0 Jan 10 10:00 main.py
# 输出:-rw-r--r-- 1 user developers 0 Jan 10 10:00 config.json
# 输出:-rw-r--r-- 1 user developers 0 Jan 10 10:00 README.md
# 将网站目录的组改为www-data(常见的Web服务器组)
chgrp -R www-data /var/www/html/
# 设置适当的权限,使Web服务器可以读取文件
chmod -R g+r /var/www/html/
# 将日志目录下的所有.log文件改为adm组
chgrp adm /var/log/*.log
# 递归处理日志目录及其子目录
chgrp -R adm /var/log/app/
-R选项时要小心,确保不会意外修改系统重要文件getent group命令查看系统中存在的组