Granting Group Read Access While Restricting Others: A Step-by-Step Guide on File Permissions

Managing and Granting Group Read Access file permissions in Linux is crucial for securing sensitive data. In this guide, we will address a common scenario: how to provide read access to a file for a specific group while preventing all other users from seeing it. This ensures that only authorized users can access the information they need.

Granting Group Read Access

Understanding Linux File Permissions

Linux file permissions consist of three types:

  • Read (r): Allows users to view the file contents.
  • Write (w): Allows users to modify the file.
  • Execute (x): Allows users to run the file if it’s a script or binary.

Permissions are set for three categories:

  • Owner: The user who owns the file.
  • Group: A group of users associated with the file.
  • Others: All other users on the system.

The Scenario

Let’s consider a file named sensitive_data.txt. We want to grant read access to a group called data_group while ensuring that no other users can access it.

Step 1: Create the Group

First, verify that the group data_group exists. If it doesn’t, create it using the following command:

sudo groupadd data_group

Step 2: Add Users to the Group

Next, add users who require access to the group. For example, to add a user named user1, run:

sudo usermod -aG data_group user1

Step 3: Change the Group Ownership of the File

Now, change the group ownership of sensitive_data.txt to data_group with the following command:

sudo chown :data_group /path/to/sensitive_data.txt

Step 4: Set the Appropriate Permissions

To provide group read access while restricting others, set the file permissions as follows:

  1. Read and Write for the Owner: Allows the owner to read and modify the file.
  2. Read for the Group: Allows group members to read the file.
  3. No Permissions for Others: Prevents all other users from accessing the file.

Run the command:

sudo chmod 640 /path/to/sensitive_data.txt

This sets the permissions to:

  • Owner: Read and write (rw-)
  • Group: Read (r–)
  • Others: No permissions (—)

Step 5: Verify the Permissions

To confirm the permissions, use:

ls -l /path/to/sensitive_data.txt

The output should look like this:

-rw-r----- 1 owner data_group 2048 Oct 16 12:00 sensitive_data.txt

Step 6: Testing Access

To ensure the permissions are set correctly, conduct the following tests:

  1. Log in as a User in the Group: Verify that a group member can read the file:
   su - user1
   cat /path/to/sensitive_data.txt

This user should be able to view the file contents.

  1. Log in as a User Not in the Group: Check that a user outside the group cannot access the file:
   su - otheruser
   cat /path/to/sensitive_data.txt

This user should receive a “Permission denied” message.

Conclusion

By following these steps, you can effectively provide group read access to a file in Linux while preventing others from seeing it. Proper management of file permissions is essential for maintaining security and protecting sensitive information.

For more tutorials on Linux and system administration, visit GeekersHub.


External Resources

Mastering file permissions is vital for any Linux administrator. Regularly review and adjust your file permissions to meet evolving security needs.