Shop our Labor Day sale and take 40% off all regularly priced courses and bundles sitewide.  Just add to cart to see your discounts.

Lock In At Our Lowest Price Ever: $14.99/month for 2,500+ hours of IT training.
Limited time only. Enroll now, cancel anytime!

Linux File Permissions – Setting Permission Using chmod

Linux File Permissions – Setting Permission Using chmod

Linux File Permissions

Introduction To Linux File Permissions

In the Linux operating system, Linux file permissions play a crucial role in controlling access to files and directories. The chmod command is used to modify these permissions, granting or restricting access to files and directories for users and groups. Understanding how to use chmod effectively is essential for managing the security and accessibility of your Linux system. In this blog, we will dive deep into the chmod command, explaining its syntax and providing extensive examples for each operation.

Basic Linux File Permissions

In Linux, each file and directory has three sets of permissions:

  1. Owner Permissions: These permissions apply to the owner of the file/directory.
  2. Group Permissions: These permissions apply to the group associated with the file/directory.
  3. Other (World) Permissions: These permissions apply to all other users on the system.

Each permission set consists of three characters: read (r), write (w), and execute (x). Here’s what each permission does:

  • Read (r): Allows reading the contents of a file or viewing the list of files within a directory.
  • Write (w): Allows modifying the contents of a file or creating/deleting files within a directory.
  • Execute (x): Allows executing a file (for scripts and binaries) or accessing a directory (e.g., to cd into it).

Numeric Representation of Linux File Permissions

Before we delve into examples, it’s essential to understand how permissions are represented numerically in Linux. Each permission is assigned a numeric value:

  • Read (r): 4
  • Write (w): 2
  • Execute (x): 1

To set permissions using chmod, you’ll use a three-digit number representing the combination of these values for the owner, group, and others. For example, if you want to give read and write permissions to the owner, but only read permissions to the group and others, the numeric representation would be 644.

CompTIA Linux+ Training

Learn Linux+ Today

ITU Offers an extensive in-depth course designed to prepare you for your CompTIA Linux+ certification. This globally recognized certification adds great value to your resume and future career prospects. View our CompTIA Linux+ Training Today.

Examples of How to Use chmod for Various Operations

Changing Owner Permissions: To grant read, write, and execute permissions to the owner of a file named “example.txt”:

Changing Group Permissions: To give read and execute permissions to the group of the file “example.txt”:

Changing Other Permissions: To allow others to read a file named “example.txt”:

Changing Permissions for All Users: To grant read and write permissions to all users for a file “shared.txt”:

Revoking Specific Permissions: To remove execute permissions for others on a shell script named “script.sh”:

Setting Permissions Numerically: To set specific permissions using numeric representation (e.g., owner: read, write; group: read; others: none):

Recursively Changing Permissions for Directories: To change the permissions of a directory “documents” and all its contents (recursively) to give read and execute permissions to the owner and group, and no permissions to others:

Popluar GUI Applications To Manage Linux File Permissions

There are several popular GUI applications available to manage Linux file permissions, making the process more user-friendly for those who prefer graphical interfaces. Here are some widely used GUI tools:

  1. Nautilus (Files): Nautilus is the default file manager for the GNOME desktop environment, commonly used in distributions like Ubuntu and Fedora. It provides a simple graphical interface to manage file permissions. Right-clicking on a file or directory and selecting “Properties” allows you to modify the permissions under the “Permissions” tab.
  2. Nemo: Nemo is the default file manager for the Cinnamon desktop environment, which is used in Linux Mint. It is based on Nautilus and offers similar features, including a user-friendly interface to manage file permissions.
  3. Dolphin: Dolphin is the default file manager for the KDE Plasma desktop environment. It is highly customizable and offers a straightforward way to modify file permissions. Right-click on a file or folder, go to “Properties,” and then navigate to the “Permissions” tab.
  4. Thunar: Thunar is the default file manager for the Xfce desktop environment. It is lightweight and efficient, providing a simple interface for managing file permissions. Right-click on a file or directory, select “Properties,” and navigate to the “Permissions” tab.
  5. PCManFM: PCManFM is the default file manager for the LXDE (Lightweight X11 Desktop Environment) and LXQt (LXDE-Qt) desktop environments. It is designed to be lightweight and fast while still offering a user-friendly way to manage file permissions.
  6. FileZilla: FileZilla is a popular FTP (File Transfer Protocol) client that allows you to transfer files between your local machine and remote servers. While it is primarily used for FTP purposes, it also provides an interface to modify file and directory permissions on the remote server.

Remember that GUI applications to manage file permissions are desktop environment-dependent, and the availability of specific tools may vary based on the Linux distribution and desktop environment you are using. Additionally, command-line tools like chmod and chown remain the most versatile and powerful means to manage file permissions in Linux.

Why Not Just Set All Linux File Permissions To 777? – A BIG Word of Caution

Setting all file permissions to 777 (rwxrwxrwx) is generally not recommended due to significant security risks. It grants full read, write, and execute permissions to the owner, group, and all other users on the system. This permissive approach can lead to various security vulnerabilities and potential issues:

  1. Security Vulnerabilities: Allowing all users to have full control over files and directories can make your system vulnerable to unauthorized access and exploitation. If any user’s account is compromised, an attacker would have complete control over the files and data accessible by that user.
  2. Data Exposure: Files with global read permissions (r) can be viewed by anyone on the system, potentially exposing sensitive information to unintended users.
  3. Accidental Deletion or Modification: With write permissions for all users, anyone can accidentally modify or delete critical files, leading to data loss or system instability.
  4. Executable Files: Granting execute permissions to everyone can be dangerous, as it allows execution of any script or binary, even if they are malicious.
  5. Best Practices: Following the principle of “least privilege,” it is advisable to grant only the necessary permissions to users and groups required for their specific tasks. This approach enhances security and minimizes potential risks.

Instead of using 777 permissions, it is recommended to follow these best practices:

  1. Use Specific Permissions: Assign the least necessary permissions to each user, group, and others to perform their required tasks.
  2. Use Groups: Organize users into groups and assign permissions to the relevant groups, rather than giving broad permissions to everyone.
  3. Set Secure umask: Configure the default umask value for new files and directories to limit the default permissions assigned when they are created.
  4. Avoid Setting World-Writable Directories: Only set directories to world-writable (777) when necessary for specific use cases, and ensure proper access control on those directories.
  5. Regularly Review and Audit Permissions: Periodically review and audit file permissions to ensure they align with your security policies and to identify any potential misconfigurations.

By following these best practices, you can strike a balance between functionality and security, ensuring that your Linux system remains protected from unauthorized access and potential vulnerabilities.


Mastering the chmod command in Linux is vital for managing file permissions effectively. By understanding the basic permission sets and their numeric representation, you can control access to files and directories with precision. In this blog, we’ve explored extensive examples of using chmod to modify permissions for users, groups, and others. With this knowledge, you can confidently manage file security and accessibility on your Linux system. Always remember to exercise caution when changing permissions, as improper settings may lead to unintended consequences or security risks.

Frequently Asked Questions About Linux File Permissions

What are Linux file permissions?

Linux file permissions are a set of rules that determine who can access, modify, or execute a file or directory. They are represented by three sets of permissions: owner, group, and other (world). Each permission set consists of read (r), write (w), and execute (x) rights.

How can I view file permissions in Linux?

You can view file permissions in Linux using the ls -l command. This command displays detailed information about files and directories, including their permissions, ownership, size, and modification timestamps. The file permissions will be displayed as a sequence of characters, such as “rw-r–r–” for a file with read and write permissions for the owner and read-only permissions for the group and others.

How can I change file permissions in Linux?

To change file permissions in Linux, you can use the chmod command followed by the desired permission settings. You can specify permissions using either symbolic notation (e.g., u+rwx, g-w, o+r) or numeric notation (e.g., 755, 644). For example, to grant read and write permissions to the owner of a file named “example.txt,” you would use chmod u+rw example.txt.

What does the “chmod +x” command do?

The “chmod +x” command gives the execute permission to a file, allowing it to be executed as a script or a binary. For example, if you have a script file named “script.sh,” you can make it executable with the command chmod +x script.sh.

Can I change permissions for multiple files or directories at once in Linux?

Yes, you can change permissions for multiple files or directories at once in Linux using the chmod command with the recursive option (-R). This allows you to modify permissions for a directory and all its contents. For instance, to give read and write permissions to the owner and group for all files and directories within a folder named “data,” you can use the command chmod -R ug+rw data/. However, be cautious when using the recursive option, as it will modify permissions for all files and directories within the specified location.

Leave a Comment

Your email address will not be published. Required fields are marked *

Get Notified When
We Publish New Blogs

More Posts

Unlock the full potential of your IT career with ITU Online’s comprehensive online training subscriptions. Our expert-led courses will help you stay ahead of the curve in today’s fast-paced tech industry.

Sign Up For All Access

Jumpstart your IT career with some of these exceptional online IT training deals!