📖 Scenario: You are managing files on a Linux system for a small team. Some files need to be assigned to a specific group so that team members can access them properly.
🎯 Goal: Learn how to use the chgrp command to change the group ownership of files.
📋 What You'll Learn
Create three empty files named report.txt, summary.txt, and data.csv
Create a group named teamgroup
Use chgrp to change the group ownership of the three files to teamgroup
Verify the group ownership of the files using ls -l
💡 Why This Matters
🌍 Real World
System administrators often need to assign files to specific groups so that team members can share access easily.
💼 Career
Knowing how to manage file permissions and group ownership is essential for Linux system administration and security management.
Progress0 / 4 steps
1
Create the files
Create three empty files named report.txt, summary.txt, and data.csv using the touch command.
Linux CLI
Hint
Use touch followed by the file names separated by spaces.
2
Create the group
Create a new group named teamgroup using the groupadd command.
Linux CLI
Hint
Use groupadd followed by the group name.
3
Change group ownership of files
Use the chgrp command to change the group ownership of report.txt, summary.txt, and data.csv to the group teamgroup.
Linux CLI
Hint
Use chgrp followed by the group name and then the file names.
4
Verify the group ownership
Use the ls -l command to display the details of report.txt, summary.txt, and data.csv and verify that their group ownership is teamgroup.
Linux CLI
Hint
Use ls -l followed by the file names to see detailed info including group ownership.
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
Step 1: Understand the purpose of chgrp
The chgrp command is specifically designed to change the group ownership of files or directories.
Step 2: Differentiate from similar commands
Changing user ownership is done by chown, and changing permissions is done by chmod. Renaming files uses mv.
Final Answer:
Changes the group ownership of a file or directory -> Option D
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
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.
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.
Final Answer:
chgrp staff report.txt -> Option B
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
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.
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.
Final Answer:
Change the group ownership of /home/project and all its contents to developers -> Option A
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
Step 1: Understand the error message
The error means you don't have permission to change the group ownership of the file.
Step 2: Use elevated privileges
Using sudo runs the command as root, which usually has permission to change group ownership.
Final Answer:
Run the command with sudo to get permission -> Option C
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
Step 1: Understand the requirement
You need to change group ownership of all .log files inside /var/logs and all its subdirectories.
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.
Final Answer:
sudo find /var/logs -type f -name '*.log' -exec chgrp adm {} + -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.