Bird
Raised Fist0
Linux CLIscripting~5 mins

chgrp (change group) in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes files or folders belong to the wrong group, which can cause access problems. The chgrp command lets you change the group ownership of files or directories so the right users can access them.
When you want to let a different group of users access a file or folder.
When you move files between systems and need to fix group ownership.
When setting up shared folders for a team to collaborate on.
When fixing permissions after copying files as root or another user.
When preparing files for a service that requires a specific group.
Commands
This command changes the group ownership of the file 'project.txt' to the group named 'developers'. It allows users in the 'developers' group to access the file according to group permissions.
Terminal
chgrp developers project.txt
Expected OutputExpected
No output (command runs silently)
This command lists the details of 'project.txt' including its permissions and group ownership, so you can verify the group change.
Terminal
ls -l project.txt
Expected OutputExpected
-rw-r--r-- 1 user developers 1234 Apr 27 12:00 project.txt
→
-l - Shows detailed file information including permissions, owner, and group.
This command changes the group ownership of the folder '/shared-folder' and all its contents recursively to the group 'staff'. It requires sudo because changing groups on files you don't own needs admin rights.
Terminal
sudo chgrp -R staff /shared-folder
Expected OutputExpected
No output (command runs silently)
→
-R - Apply the group change recursively to all files and subfolders.
This command lists the contents of '/shared-folder' with details to confirm the group ownership has changed to 'staff'.
Terminal
ls -l /shared-folder
Expected OutputExpected
drwxrwxr-x 2 user staff 4096 Apr 27 12:05 docs -rw-rw-r-- 1 user staff 2048 Apr 27 12:05 notes.txt
→
-l - Shows detailed file information including permissions, owner, and group.
Key Concept

If you remember nothing else from this pattern, remember: chgrp changes the group ownership of files or folders so the right users can access them based on group permissions.

Common Mistakes
Trying to change the group of a file without having permission or using sudo when needed.
You will get a 'Operation not permitted' error because only the file owner or root can change group ownership.
Use sudo before chgrp if you are not the owner and need to change the group.
Using chgrp without the -R flag when trying to change groups on a folder and all its contents.
Only the folder's group changes, but files inside remain unchanged, causing inconsistent permissions.
Add the -R flag to apply the group change recursively to all files and subfolders.
Specifying a group name that does not exist on the system.
The command will fail with an error because it cannot assign a non-existent group.
Check available groups with 'getent group' or 'cat /etc/group' before using chgrp.
Summary
Use chgrp to change the group ownership of files or directories.
Verify changes with 'ls -l' to see updated group ownership.
Use the -R flag to change groups recursively inside folders.
Use sudo if you are not the owner and need permission to change groups.

Practice

(1/5)
1. What does the chgrp command do in Linux?
easy
A. Changes the file name
B. Changes the user ownership of a file or directory
C. Changes the permissions of a file or directory
D. Changes the group ownership of a file or directory

Solution

  1. Step 1: Understand the purpose of chgrp

    The chgrp command is specifically designed to change the group ownership of files or directories.
  2. Step 2: Differentiate from similar commands

    Changing user ownership is done by chown, and changing permissions is done by chmod. Renaming files uses mv.
  3. Final Answer:

    Changes the group ownership of a file or directory -> Option D
  4. Quick Check:

    chgrp changes group ownership [OK]
Hint: Remember: chgrp = change group ownership [OK]
Common Mistakes:
  • Confusing chgrp with chown (user ownership)
  • Thinking chgrp changes permissions
  • Mixing up chgrp with mv (rename)
2. Which of the following is the correct syntax to change the group of a file named report.txt to staff?
easy
A. chgrp report.txt staff
B. chgrp staff report.txt
C. chgrp -g staff report.txt
D. chgrp -u staff report.txt

Solution

  1. Step 1: Recall the basic syntax of chgrp

    The correct syntax is chgrp [group] [file]. So the group name comes first, then the file name.
  2. Step 2: Analyze each option

    chgrp staff report.txt matches the correct syntax. chgrp report.txt staff reverses the order. chgrp -g staff report.txt uses an invalid flag -g. chgrp -u staff report.txt uses -u which is not valid for chgrp.
  3. Final Answer:

    chgrp staff report.txt -> Option B
  4. Quick Check:

    Syntax: chgrp group file [OK]
Hint: Group name first, then file name in chgrp [OK]
Common Mistakes:
  • Swapping group and file arguments
  • Using invalid flags like -g or -u
  • Confusing chgrp syntax with chown
3. What will be the output or effect of the command:
sudo chgrp -R developers /home/project?
medium
A. Change the group ownership of /home/project and all its contents to developers
B. Change the user ownership of /home/project to developers
C. Change the group ownership of /home/project only, not its contents
D. Show an error because -R is invalid with chgrp

Solution

  1. Step 1: Understand the -R option

    The -R flag means recursive, so it applies the group change to the directory and all files and subdirectories inside it.
  2. Step 2: Understand the use of sudo

    sudo is used to run the command with root privileges, which is often needed to change group ownership on files you don't own.
  3. Final Answer:

    Change the group ownership of /home/project and all its contents to developers -> Option A
  4. Quick Check:

    chgrp -R changes group recursively [OK]
Hint: Use -R to change group recursively on directories [OK]
Common Mistakes:
  • Thinking -R only changes the directory itself
  • Confusing group change with user change
  • Assuming -R is invalid for chgrp
4. You run chgrp staff report.txt but get the error: chgrp: changing group of 'report.txt': Operation not permitted. What is the most likely fix?
medium
A. Use chmod instead of chgrp
B. Change the file name to staff
C. Run the command with sudo to get permission
D. Restart the system and try again

Solution

  1. Step 1: Understand the error message

    The error means you don't have permission to change the group ownership of the file.
  2. Step 2: Use elevated privileges

    Using sudo runs the command as root, which usually has permission to change group ownership.
  3. Final Answer:

    Run the command with sudo to get permission -> Option C
  4. Quick Check:

    Permission errors need sudo [OK]
Hint: Use sudo if permission denied on chgrp [OK]
Common Mistakes:
  • Trying to rename file instead of changing group
  • Using chmod which changes permissions, not group
  • Restarting system won't fix permission issues
5. You want to change the group ownership of all files with extension .log inside /var/logs and its subdirectories to adm. Which command will do this correctly?
hard
A. sudo find /var/logs -type f -name '*.log' -exec chgrp adm {} +
B. sudo chgrp -R adm /var/logs/*.log
C. chgrp adm /var/logs/*.log
D. sudo chgrp adm /var/logs -name '*.log'

Solution

  1. Step 1: Understand the requirement

    You need to change group ownership of all .log files inside /var/logs and all its subdirectories.
  2. Step 2: Analyze each option

    sudo find /var/logs -type f -name '*.log' -exec chgrp adm {} + uses find to locate all .log files recursively and runs chgrp adm on them, which is correct.
    sudo chgrp -R adm /var/logs/*.log tries to use chgrp -R on a wildcard which only expands in the current directory, not recursively.
    chgrp adm /var/logs/*.log lacks sudo and is not recursive.
    sudo chgrp adm /var/logs -name '*.log' uses invalid syntax with -name directly on chgrp.
  3. Final Answer:

    sudo find /var/logs -type f -name '*.log' -exec chgrp adm {} + -> Option A
  4. Quick Check:

    Use find with exec for recursive selective chgrp [OK]
Hint: Use find with exec to change group on specific files recursively [OK]
Common Mistakes:
  • Using chgrp -R with wildcards which is not recursive
  • Forgetting sudo for permission
  • Trying to use -name option with chgrp
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard