File permissions are at the heart of Linux security and organization. Whether you’re sharing a project folder with your team or just keeping your personal files safe, understanding permissions is a must. Let’s break down the essentials in a way that’s easy to follow and, as always, practical.

Table of Contents


What Are File Permissions?

In Linux, every file and directory has a set of permissions that control who can read, write, or execute it.

These permissions are divided into three categories:

  • Owner: The user who owns the file

  • Group: Users who are part of the file’s group

  • Others: Everyone else

This setup keeps your system organized and secure.


How to View Permissions

To see permissions, use the *ls -l * command in your terminal:

ls -l filename

You’ll get output like this:

-rwxr-xr--

Let’s decode it:

  • The first character shows the type (- for file, d for directory)
  • The next three (rwx) are for the owner
  • The next three (r-x) are for the group
  • The last three (r--) are for others


Understanding Permission Types

There are three basic permissions:

  • Read (r): View the contents
  • Write (w): Modify the file
  • Execute (x): Run the file as a program

A quick example:

-rw-r--r-- means the owner can read and write, while everyone else can only read


Changing Permissions (chmod)

You can change permissions with the chmod command.

There are two main ways: symbolic and numeric.

-Symbolic:

chmod u+x script.sh

This gives the owner (user) execute permission for script.sh.

-Numeric:

chmod 755 myfile

This sets permissions to:

  • Owner: read, write, execute (7)

  • Group: read, execute (5)

  • Others: read, execute (5)

Quick Reference Table:

Number Permission
7 rwx (read, write, execute)
6 rw- (read, write)
5 r-x (read, execute)
4 r-- (read only)


Changing Ownership (chown & chgrp)

Every file has an owner and a group.
You can change them with:

sudo chown newowner filename

sudo chown newowner:newgroup filename

sudo chgrp newgroup filename

This is handy when you want to transfer responsibility or share files within a team


Numeric vs. Symbolic Modes

  • Symbolic: Use letters (u for user, g for group, o for others, a for all)

  • Numeric: Use numbers (e.g., 755, 644)

Both methods work-pick whichever feels more natural


Best Practices for Permissions

  • Only give the permissions that are truly needed

  • Use groups to manage shared access

  • Avoid using 777 (full permissions for everyone) unless absolutely
    necessary

  • Regularly review and adjust permissions, especially on sensitive
    files


Conclusion

File permissions in Linux might look intimidating at first, but once you get the hang of the basics, they’re straightforward and powerful.

With these commands and tips, you’ll keep your files safe, your system organized, and your workflow smooth.

Experiment with chmod and chown on test files, and soon you’ll be managing permissions like a pro!