Ugacomp

How to add and edit file permissions in Linux

Where necessary, you may need to have access to a VPS server so you can follow how to implement the steps in this article.  You can get a cheaper VPS Server from Contabo with 4vCPU cores, 8GM RAM, and 32TB Bandwidth for less than $5.50 per month. Get this deal here now

Table of Contents

Cloud VPS S

$5.50 Monthly
  • 4 vCPU Cores | 8GB RAM

CLOUD VPS M

$15.50 Monthly
  • 6 vCPU Cores | 16GB RAM

CLOUD VPS L

$17.50 Monthly
  • 8 vCPU Cores | 24GB RAM

In the Linux operating system, file permissions play a crucial role in securing your system and data. Properly managing file permissions ensures that only authorized users or processes can access or modify specific files. This article will guide you through the process of adding and editing file permissions using command examples.

What are File permissions?

File permissions are a set of rules that determine who can access a file or directory, and what actions they can perform on it, in a Linux or Unix-based operating system. These permissions are a fundamental aspect of system security and are designed to protect files and data from unauthorized access, modification, or deletion.

In Linux, file permissions are associated with three entities: the file owner, the group to which the owner belongs, and others (everyone else). Each entity is granted specific permissions for a file or directory.

Here is a table summarizing file permissions represented by letters, numbers, and their descriptions in a Linux or Unix environment:

Permission TypeSymbol (Letter)Symbol (Number)Description
Readr4View and read content
Writew2Modify or delete
Executex1Execute (for files) or access (for directories)

In numeric representation, each permission is assigned a value:

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

To set permissions numerically, you can add these values based on the desired combination. For instance:

  • Read + Write = 4 + 2 = 6
  • Read + Execute = 4 + 1 = 5
  • Read + Write + Execute = 4 + 2 + 1 = 7

This numeric representation simplifies the process of setting multiple permissions at once using the chmod command.

Relationship between file permissions and file ownership

Every file and directory in a Linux system has an owner. The owner is typically the user account that created the file. Additionally, each file is associated with a specific group, often the primary group of the owner.

File permissions determine who can perform specific actions on a file or directory. There are three basic types of permissions: read (r), write (w), and execute (x). These permissions are assigned separately for the file owner, the group, and others (users not in the owner’s group).

Owner’s Authority

The user who created the file is the owner.

The file owner has significant authority over the file, including the ability to change its permissions, modify its content, and delete it.

The owner can also change the file’s group ownership using the chown command.

Group Permissions

Each user in Linux belongs to one or more groups.

A file has an associated group, and all users in that group inherit the file’s group permissions.

Group permissions are particularly useful for collaborative projects, allowing a set of users to share access rights.

Others’ Access

Users who are neither the owner nor in the file’s group are categorized as “others.”

The permissions granted to others determine what users outside the owner and group can do with the file.

The representation of File owner, group and others

In Linux and Unix systems, file permissions are represented using a 10-character string, where the first character represents the file type, and the next three sets of three characters each represent the permissions for the owner, group, and others. Here is how the owner, group, and others are represented in file permissions:

Owner

  • The first set of three characters represents the permissions for the file owner.
  • The characters are, in order, read (r), write (w), and execute (x).

Group:

  • The second set of three characters represents the permissions for the group associated with the file.
  • Again, the characters are read (r), write (w), and execute (x).

Others:

  • The third set of three characters represents the permissions for users who are neither the owner nor in the file’s group.
  • These characters, once more, are read (r), write (w), and execute (x).

Here is an example of how the overall file permissions string is structured:

- rwx r-- r--

In this example:

  • The first character (-) represents the file type (in this case, a regular file).
  • The next three characters (rwx) represent the owner’s permissions (read, write, execute).
  • The following three characters (r--) represent the group’s permissions (read only).
  • The last three characters (r--) represent the permissions for others (read only).

You may encounter variations where permissions are represented numerically, where read is 4, write is 2, and execute is 1. The sum of these values represents the permission setting (e.g., 755). In this case, the first digit is for the owner, the second for the group, and the third for others. The binary representation of these numbers is often used to illustrate the presence or absence of specific permissions.

Viewing Current Permissions

Before making any changes, it’s essential to understand the current file permissions. The ls command with the -l option provides a detailed listing, including information about ownership and permissions.

$ ls -l filename

This command will display output similar to the following:

-rw-r--r-- 1 user user 1024 Mar 1 10:00 filename

The permission section, represented by -rw-r--r--, consists of three sets of permissions for the file owner, group, and others, respectively.

Using the chmod Command to add File Permissions

The chmod command in Linux and Unix systems is used to change or modify file permissions. It allows you to add or remove read, write, and execute permissions for the owner, group, and others. Here are some examples of using the chmod command to add file permissions:

Adding Execute Permission for the Owner

To add execute permission for the owner of the file:

chmod +x filename

This command adds execute (x) permission to the owner of the file.

Adding Write and Execute Permissions for the Group

To add both write and execute permissions for the group:

chmod g+wx filename

This command adds write (w) and execute (x) permissions to the group associated with the file.

Adding Read Permission for Others

To add read permission for users who are neither the owner nor in the group:

chmod o+r filename

This command adds read (r) permission to others.

Adding Read and Write Permissions for the Owner and Group

To add read and write permissions for both the owner and the group:

chmod u+rw,g+rw filename

This command adds read (r) and write (w) permissions for the owner and the group.

Adding Execute Permission Recursively

To add execute permission to a directory and its contents recursively:

chmod -R +x directory

The -R option ensures that the permissions are applied recursively to all files and subdirectories within the specified directory.

Adding Multiple Permissions at Once

To add read, write, and execute permissions for the owner, and read and execute permissions for the group and others:

chmod 755 filename

The numeric representation (755) assigns read (4) + write (2) + execute (1) for the owner, and read (4) + execute (1) for the group and others.

Adding full permissions

To add full permissions (read, write, and execute) for the owner, group, and others, you can use the chmod command with the appropriate symbols or numeric representation. Here are examples for both approaches:

  • Using Symbols
chmod u+rwx,g+rwx,o+rwx filename

This command adds read (r), write (w), and execute (x) permissions for the owner (u), group (g), and others (o) respectively. Replace “filename” with the actual name of the file or directory.

  • Using Numeric Representation
chmod 777 filename

In this example, the numeric representation 777 grants full permissions to the owner, group, and others. Each digit in the numeric representation represents the permission set for the owner, group, and others, with 4 for read, 2 for write, and 1 for execute. Adding these values results in:

  • Owner: read (4) + write (2) + execute (1) = 7
  • Group: read (4) + write (2) + execute (1) = 7
  • Others: read (4) + write (2) + execute (1) = 7

The chmod 777 command is equivalent to providing full permissions to everyone. Keep in mind that granting such broad permissions should be done cautiously, as it may pose security risks. Always consider the principle of least privilege and only provide the permissions necessary for the intended use.

Using the chown Command to change File Ownership

The chown command in Linux and Unix systems is used to change the ownership of a file or directory. It is not directly used for changing file permissions; instead, it focuses on modifying ownership. However, changing ownership can indirectly impact file permissions, especially when dealing with users and groups. Here are examples of using the chown command:

Changing the Owner of a File

To change the owner of a file, use the following syntax:

chown newowner filename

Replace “newowner” with the desired user who will become the new owner and “filename” with the actual name of the file.

Changing the Owner and Group of a File

To change both the owner and group of a file, use:

chown newowner:newgroup filename

Replace “newowner” with the desired user for ownership and “newgroup” with the desired group. Again, replace “filename” with the actual file name.

Changing Owner Recursively for a Directory:

To change the owner of a directory and its contents recursively, use the -R option:

chown -R newowner:newgroup directory

This command recursively changes the ownership of the specified directory and all its contents.

Changing Only the Group of a File

To change only the group of a file without modifying the owner, use:

chown :newgroup filename

This command leaves the owner unchanged and changes the group of the file.

Changing the Owner to the Root User

To change the owner of a file to the root user, use:

chown root filename

This is often used for system files that require elevated privileges.

After changing ownership, you may need to adjust file permissions using the chmod command to ensure proper access for the new owner and group.

Hire us to handle what you want

Hire us through our Fiverr Profile and leave all the complicated & technical stuff to us. Here are some of the things we can do for you:

  • Website migration, troubleshooting, and maintenance.
  • Server & application deployment, scaling, troubleshooting, and maintenance
  • Deployment of Kubernetes, Docker, Cloudron, Ant Media, Apache, Nginx,  OpenVPN, cPanel, WHMCS, WordPress, and more
  • Everything you need on AWS, IBM Cloud, GCP, Azure, Oracle Cloud, Alibaba Cloud, Linode, Contabo, DigitalOcean, Ionos, Vultr, GoDaddy, HostGator, Namecheap, DreamHost, and more.
 

We will design, configure, deploy, or troubleshoot anything you want. Starting from $10, we will get your job done in the shortest time possible. Your payment is safe with Fiverr as we will only be paid once your project is completed.