Root-Server Tutorial

ROOT-SERVER TUTORIAL

How to Use the Chmod and Chown Commands to Change File Permissions

Learn how to use the chmod and chown commands in Linux to change file permissions in this step-by-step tutorial.

Author:

Peter Mesiha

Last updated:

19/04/2023

Introduction

File permissions are an important aspect of managing files in Linux. Permissions define who can read, write, and execute files. In this tutorial, we'll explain how to use the chmod and chown commands in Linux to change file permissions.

Requirements

To follow along with this tutorial, you'll need:

  • A Linux-based operating system (such as Ubuntu, CentOS, or Debian)
  • Basic knowledge of the Linux command line
  • A file to test the chmod and chown commands on

Step 1 - Understanding file permissions

Before we dive into the "chmod" and "chown" commands, it's important to understand how file permissions work in Linux.

In Linux, files have three types of permissions: read (r), write (w), and execute (x). These permissions are assigned to three groups: the owner of the file, the group that the file belongs to, and everyone else (also known as "others").

The permissions for each group are represented by a string of three letters. For example, the permissions for a file might be "rw-r--r--". This means that the owner of the file has read and write permissions, the group that the file belongs to has read permissions, and everyone else has read permissions.

To view the permissions of a file, you can use the "ls" command with the "-l" option:

ls -l foldername

This will display the permissions, owner, group, size, and modification date of the file.

Step 2 - Changing file permissions with chmod

Now that we understand file permissions, let's look at how to change them using the "chmod" command.

The "chmod" command allows you to add or remove permissions for the owner, group, and others. The basic syntax for the "chmod" command is:

chmod [options] mode filename

The "mode" parameter specifies the permissions to be set, and can be represented in one of two ways:

A string of three or four numbers (such as 755 or 644) A string of letters (such as "rwxr-xr--") To use the numeric method, you'll need to understand how each digit represents a specific set of permissions.

The first digit represents the permissions for the owner of the file, the second digit represents the permissions for the group, and the third digit represents the permissions for everyone else. Each digit can be a number from 0 to 7, with the following values:

0 = no permissions 1 = execute only 2 = write only 3 = write and execute 4 = read only 5 = read and execute 6 = read and write 7 = read, write, and execute

For example, the permissions "rw-r--r--" would be represented as 644 using the numeric method (because the owner has read and write permissions, and the group and others have only read permissions).

To use the letter method, you'll need to understand how each letter represents a specific set of permissions.

The letters are "r" for read, "w" for write, and "x" for execute. Each set of permissions is represented by a string of three letters, one for the owner, one for the group, and one for everyone else. For example, "rw-r--r--" would be represented using the letter method as "644".

To add permissions to a file, you can use the "+" operator followed by the permission you wish to add. For example, to add execute permission for everyone to a file, you can use the following command:

chmod +x filename

This will add execute permission for everyone to the file "filename". You can also add permissions for specific user groups. For example, to add write permission for the group "users" to a file, you can use the following command:

chmod g+w filename

This will add write permission for the group "users" to the file "filename". You can also use the "u" and "o" options to add permissions for the owner and everyone else, respectively.

To remove permissions from a file, you can use the "-" operator followed by the permission you wish to remove. For example, to remove write permission for the group "users" from a file, you can use the following command:

chmod g-w filename

This will remove write permission for the group "users" from the file "filename".

You can also set permissions using the numeric method. To do this, you need to assign a number to each set of permissions. The number is calculated by adding up the values for each permission. The value for each permission is as follows:

r = 4 w = 2 x = 1

For example, if you want to set read and write permissions for the owner, read-only permissions for the group, and no permissions for everyone else, you would use the following command:

chmod 640 filename

This sets the owner's permissions to 6 (4 + 2), the group's permissions to 4 (read-only), and everyone else's permissions to 0.

Step 2 - Changing file ownership with chown

You can also use the "chown" command to change the owner and group of a file. To change the owner of a file, you can use the following command:

chown newowner filename

This changes the owner of the file "filename" to "newowner". To change the group of a file, you can use the following command:

chown :newgroup filename

This changes the group of the file "filename" to "newgroup". You can also change both the owner and group at the same time by combining the two commands:

chown newowner:newgroup filename

This command can be useful if you need to transfer ownership of a file to a different user or group. However, it's important to note that you should use this command with caution as changing ownership of system files can have unintended consequences and potentially compromise the security of your system.

In addition, when changing ownership of a file, make sure that the user or group you are transferring ownership to has the necessary permissions to access and modify the file. Otherwise, you may run into issues with permission errors.

It's also worth noting that you can use the "chown" command recursively by adding the "-R" flag before the user and group arguments. This will change the ownership of all files and directories within the specified directory, including all subdirectories.

Overall, the "chown" command is a powerful tool for managing file ownership and group permissions in Linux. With a basic understanding of its syntax and options, you can easily modify permissions and ensure that your files are accessible to the appropriate users and groups.

License

MIT

Copyright (c) 2021 netcup

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Contributor's Certificate of Origin

By making a contribution to this project, I certify that:

  1. The contribution was created in whole or in part by me and I have the right to submit it under the license indicated in the file; or

  2. The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same license (unless I am permitted to submit under a different license), as indicated in the file; or

  3. The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

  4. I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the license(s) involved.

Published 19/04/2023 by Peter Mesiha

Submit your tutorial

Get 60€ netcup vouchers for every published tutorial.