[Linux] Change Group Ownership with the chgrp Command

目次

Overview

The chgrp command is specifically designed to change the “owning group” of files and directories. While you can also change groups with the chown command, chgrp has a simpler syntax. It is frequently used when you want to manage group-only permissions, such as setting up shared folders for project members or configuring write access for web servers.

Regular users can sometimes run this command without administrative privileges (sudo) if they are changing a file they own to a group they already belong to.

Specifications (Arguments and Options)

Syntax

chgrp [options] group_name filename

Main Arguments and Options

OptionDescription
-RChange all files and directories within a folder recursively (Recursive).
-cShow details only when an actual change is made (changes).
-fSuppress error messages, such as permission denied or missing files (force/silent).
-hIf the target is a symbolic link, change the group of the link itself instead of the target file.
--dereferenceIf the target is a symbolic link, change the group of the target file (default behavior).
--reference=<file>Apply the same group settings as a specific reference file.

Basic Usage

This command changes the owning group of a file to the specified group.

Command

# Change the group of sales_report.txt to 'marketing'
chgrp marketing sales_report.txt

# Verify the change
ls -l sales_report.txt

Execution Result

-rw-rw-r-- 1 user marketing 2048 Jan 20 11:00 sales_report.txt

The group section of the file attributes changes to “marketing”.

Practical Commands

Change Ownership Recursively for a Directory

This is the most frequent use case, such as setting up web server directories or team shared folders.

# Change the group of everything under /var/www/html to 'www-data'
sudo chgrp -R www-data /var/www/html

Display Only Files That Were Changed

When used with -R, this option outputs a log only for files that actually required a change. Files that already belong to the correct group are ignored.

# Display output only when a change occurs
sudo chgrp -Rc developers ./project_src/

Example Output:

changed group of './project_src/new_module.py' from root to developers
changed group of './project_src/config/settings.json' from user to developers

Copy Group Settings from Another File

Instead of typing the group name, you can tell the command to “make this file match that one.” This is useful for automation in scripts.

# Apply the group information from template.conf to new_config.conf
chgrp --reference=template.conf new_config.conf

Customization Points

  • Using GID: You can use a numeric Group ID (GID) instead of a group name (e.g., chgrp 1001 file.txt).
  • Group-Only Focus: Remember that chgrp only handles groups. If you need to change the owner (user) as well, use the chown command (e.g., chown user:group file).

Important Notes

  • Permission Restrictions: Regular users can only use chgrp if they own the file and belong to the target group. For all other cases, such as changing files owned by others, you must use sudo.
  • Symbolic Link Behavior: By default, the command changes the “target file” of a link. Use the -h option to change the group of the link file itself.
  • Recursive Risks: Be careful when using -R on system directories. Incorrectly changing group ownership can cause system errors. Always verify your path before running the command.

Applications

Batch Change Specific Files Found with the find Command

You can target specific files based on criteria like file extensions instead of changing an entire directory.

# Change the group to 'admin' for all .log files in the current directory and its subdirectories
find . -name "*.log" -exec chgrp admin {} +

Summary

The chgrp command is an essential tool for maintaining collaborative environments in Linux. Whether you are working on a team project or sharing files between a web server and FTP users, assigning the correct group permissions prevents “Permission Denied” errors. While chown can do the same thing, using chgrp for group-only tasks reduces the risk of accidentally changing the owner and ensures safer system operation.

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次