Understanding Linux Permissions

Vidyasagar Machupalli
3 min readAug 7, 2024

--

Linux file permissions are a cornerstone of system security and access control. They dictate who can read, write, or execute files and directories on a Linux system. Mastering these permissions is essential for effectively managing and securing your Linux environment.

The Basics of Permission Structure

Linux permissions are represented by a 10-character string. Let’s break it down:

  1. The first character indicates the file type:
  • - for regular files
  • d for directories
  • l for symbolic links

2. The next nine characters are split into three sets of three, representing permissions for:

  • Owner (user)
  • Group
  • Others (everyone else)

Each set uses r for read, w for write, and x for execute permissions. A - indicates that permission is not granted.

For instance, -rw-r--r-- shows a regular file where the owner has read and write permissions, while the group and others have only read permissions.

Numeric Representation of Permissions

Permissions can also be expressed numerically using a three-digit octal number. Each digit corresponds to user, group, and others respectively. The values are:

Read (r) = 4

Write (w) = 2

Execute (x) = 1

These values are summed for each set of permissions. For example:

  • 7 (4+2+1) = read, write, and execute
  • 6 (4+2) = read and write
  • 5 (4+1) = read and execute
  • 4 = read only

Thus, -rw-r--r-- in numeric form is 644.

Modifying Permissions

The chmod command is used to change file permissions. It can be used in two ways:

  1. Symbolic mode:
chmod u+x file.txt

This adds execute permission for the user.

2. Numeric mode:

chmod 755 file.txt

This sets read, write, and execute permissions for the owner, and read and execute for group and others.

Special Permissions

Beyond basic permissions, Linux offers special permissions:

  • SUID (Set User ID): 4000
  • SGID (Set Group ID): 2000
  • Sticky Bit: 1000

These provide additional control over file execution and directory access.

Directory Permissions

Directory permissions function slightly differently:

  • Read (r): Allows listing directory contents
  • Write (w): Allows creating, deleting, or renaming files within the directory
  • Execute (x): Allows entering the directory and accessing its contents

Typically, directories are set to drwxr-xr-x or 755, giving the owner full control while allowing others to list and access contents.

The Importance of Proper Permissions

Setting appropriate permissions is crucial for:

  1. Maintaining system security
  2. Protecting sensitive data
  3. Preventing unauthorized access or modifications
  4. Ensuring proper functionality of applications and services

For instance, you might restrict access to configuration files (644), set executable permissions for scripts (755), or limit access to user home directories (700).

Tool

If you are looking for a simple and easy to use tool, chmod calculator is an awesome tool to convert Linux file permissions between different formats.

Conclusion

Understanding and effectively managing Linux file permissions is a vital skill for both system administrators and users. It enables fine-grained control over file access and helps maintain a secure and well-organized Linux environment.

--

--

Vidyasagar Machupalli
Vidyasagar Machupalli

Written by Vidyasagar Machupalli

Architect, Developer, IBMer, Speaker, Blogger, Teetotaller, Geek & many more…

No responses yet