- How to Change Permissions in Linux
- 1) Change permissions using Numeric (octal) method
- 2) Change permissions using symbolic mode
- 3) Change permissions recursively
- 4) Special bit permissions
- Conclusion
- How to Change Permissions and Owners via Command Line
- Why You Need to Change Permissions and Owners in Linux
- How to Change File and Folder Permissions
- How to Use chmod Command
- Changing the Owners of Files and Folders
- Using Options with chmod and chown Commands
- Conclusion
How to Change Permissions in Linux
On Linux and Unix, the security starts with file permissions. On a very basic level, file and directory permissions play a vital role in the security of a system. When you create a file or directory on Linux systems, it comes with default permissions.
The file permissions are applied on three levels: the owner , group members and others . The chmod command is used in Linux to change these permissions.
In this tutorial, we will discuss how to change file permissions in Linux using chmod command.
1) Change permissions using Numeric (octal) method
Permissions (access modes) can be changed with the chmod command by using some operators (-, + or =) to assign permissions (r, w or x) to a specific user (u, g, o or a). The command accepts either numerical (octal) or symbolic access mode specifications.
Numerical method is the most commonly used way of setting permissions for files and directories. To do this, enter chmod numeric_permission filename .
Each permission is represented by a number and the permission for a specific entity is finally represented by a set of three columns.
In the above diagram,
The ‘User’ is given (4 2 1 ) permission where user has read, write and execute.
The ‘Group’ is given (4 2 0) permission where group members can read and write.
The ‘Other (world)’ is given (4 0 0) permission where others can only read.
In the numeric method, all the permissions are changed at once.
755 : set read+write+execute permission to the user , set read+execute permission to the group and set read+execute permission to the others .
476 : set only read permission to the user , set read+write+execute permission to the group and set read+write permission to the others .
500 : set read+execute permission to the user , set no permissions to the group and set no permissions to the others .
When using the numeric method, you should always specify three values (owner, group, and others).
2) Change permissions using symbolic mode
Numerical access mode is more preferred by most Linux users. However, some people prefer to use symbolic forms because they usually modify an existing mode instead of completely replacing it.
Symbolic mode is used as chmod entity=permissions filename . Symbolic mode specifications have three parts, made up of individual characters and uses a letter to identify the part:
- Entity : User owner = u, group owner = g, other = o, and all = a
- Operation : + to add, — to remove, or = to assign (remove the other existing permissions)
- Permissions to set : r = read, w = write, and x = execute
Some examples to make you understand.
chmod +x : Add execute permission for all the entity user, group and other. It is used to make a script or a program executable in order to run it
Now you can run your script as below
u+x : Add execute permission for the user only
go-w : Remove write permission from group and other classes only.
a=rw : Set read and write, but not execute, permissions for everyone.
g-x,o-rx : Remove execute permission for the group and remove read+execute permission for the other .
Note: Don’t use space after the comma (,)
Let’s verify permission using ls command:
When you using the symbolic method it is possible to do combinations to manipulate some entities at the same time.
Keep in mind, when using the symbolic mode, the permissions that you are not specifying stay as they were before executing the chmod command
3) Change permissions recursively
When you use chmod command on a directory without any option, it doesn’t affect the permissions on its subdirectories. It means that the permissions are only applied on the directory itself.
To change permissions of a directory with its subdirectories (recursively), we can use -R option.
For example, look our ‘asciiquarium_1.1’ directory on which we applied 500 permissions.
When we list the permission for file and directories inside ‘asciiquarium_1.1’ directory, we can it’s not set to ‘500’.
Now let’s use chmod -R command with the same permissions on ‘asciiquarium_1.1’ directory using the following command:
Now let’s verify files and directories permission as follows:
You can see that permissions have set on files and subdirectories.
4) Special bit permissions
Most of the tasks you will complete with permissions will be with the read, write, and execute permissions. However, there are several other special permissions that you can assign to files and directories in your file system. These special permissions are referenced as an extra digit added to the beginning of the file or directory’s mode.
The following special bits are available for Linux file system use:
- SUID: the Set User ID permission allows users to run a program as if they were the user owner of the program; in most cases the user owner is the root user. The numeric value of this permission set is 4XXX (where “XXX” is replaced by the numeric values for the set of three mentioned previously).
- SGID: When set on a directory, the Set Group ID permission automatically gives group ownership of all new files created in the directory to the group owner of the directory (numeric = 2XXX). When set on a file, the SGID allows users to run a program as if they were the group owner of the file.
- Sticky bit: this permission set is used to keep “nonowners” from deleting files in a common directory (numeric = 1XXX). In a sticky bit directory, only the owner of the file or the owner of the directory can delete the file (root always can delete files as well).
To understand let me give you one example:
We will apply SUID permission on a file using the following command:
Conclusion
When changing permissions you can always use either the numeric method or the symbolic method. Numeric permissions are the most often used, and they appear every time. As a rule, I recommend using the numeric mode to set or force permissions on an object, as opposed to making small changes to permissions. You should have root or sudo user access to change permissions for files and directories owned by others otherwise its only possible to change permissions of files and directories you own.
Источник
How to Change Permissions and Owners via Command Line
In this tutorial, you will learn how to change permissions and owners in Linux using chmod and chown commands. By doing so, you’ll have better management in team-based projects.
Why You Need to Change Permissions and Owners in Linux
Linux is a multi-user operating system, so more than one person can work on the same computer at the same time. What’s great, the system can be accessed locally or remotely. That’s why developers often use this OS for group projects.
In such a large environment, we need to set file permissions and ownership, so only specific users can access our data. This way, we can protect sensitive information and prevent unwanted changes from happening.
Fortunately, thanks to chmod and chown commands, it is easy to change permissions and owners in Linux. But before we begin to learn how to use them, make sure you have access to the command line. You can launch it by pressing Ctrl + Alt + T.
How to Change File and Folder Permissions
We will be using the chmod command to change file and folder permissions in Linux. But first, you need to be aware that there are three types of users who can interact with a file:
- Owner — the user who creates and owns a file or folder.
- Group — all users who are members of the same group.
- Others — all other users on the system who are neither the owner nor members of a group.
To see permissions and owners of a specific file, you can run this command:
The result will look like this:
Let’s break the output down to see what each field means:
- “-rwxrw-rw-“ — this part of the line represents the file permissions. To understand it better, we have to divide it into four groups: (–), (rwx), (rw-), and (rw-).
- The first group indicates the file type. Our example shows a hyphen, which represents a regular file. If we are inspecting a directory, the hyphen will be replaced by d.
- The three characters after the file type represent the owner’s file permissions. In this example, we can see that the owner can read (r), write (w), and execute (x) the file.
- The next three characters are the group’s file permissions. We can conclude that the group can read (r) and write (w), but cannot execute the file. This is because the last character is a hyphen instead of the letter x.
- The last group is others’ file permissions. Based on our example, this type of user cannot execute the file, but they are allowed to read and write.
- 1 – the number of hard links. A hard link is an additional name for an existing file.
- user user – the owner and group owner of the file.
- 0 – the size of the file in bytes.
- Jan 19 12:59 – the last modification date.
- myfile.txt – the name of the file/folder.
How to Use chmod Command
Let’s say we want to change Linux file permissions from -rwxrw-rw- to -rwx-r–r–. Simply enter this line:
By executing this command, the owner can read, write, and execute the file (rwx). However, group and others are only allowed to read (r–).
At this point, you might wonder why we are using a three-digit number (744) after the chmod command.
The number determines the file permissions. Read, write, and execute are represented by a numerical value:
- r (read) – 4
- w (write) – 2
- x (execute) – 1
So if you want to give all permissions (rwx) to a user, we need to add read (4), write (2), and execute (1). Therefore, rwx is equal to 7.
Meanwhile, since group and others are only allowed to read the file, we give them 4.
Remember, the owner’s permissions always come first, then followed by group and others. That’s why we enter 744.
If you don’t want to give any permission to a user, enter 0 into the corresponding spot.
Here is a list of the most common file permissions:
Common permissions for directories:
Changing the Owners of Files and Folders
To change the owner of a file and folder, we will be using the chown command. This is the basic syntax:
Let’s say we have a file named “myfile.txt.” If we want to set the owner of the file to “hostinger,” we can use this command:
However, if we want to change the group owner of the file to “clients,” we’ll enter this line instead:
Notice that we use a colon (:) before “clients” to indicate that it is a group owner.
Now, to change both the owner and group owner at the same time, the syntax would be like this:
The main rule is that the owner should come before the group owner, and they have to be separated by a colon.
Using Options with chmod and chown Commands
Option is an additional command to change the output of a command.
One of the most popular options that you can combine with chmod and chown is -R (Recursive). This Linux option allows you to change permissions or owners of all files and subdirectories inside a specific directory.
If you want to use an option, you have to place it right after the chmod/chown command.
Take a look at this example:
After you enter the above command, the owner can read, write, and execute all files and subdirectories inside the /etc/myfiles directory. The command also gives read and execute permissions to group and others.
Be extra careful with this option. Improper use of the command may cause critical failure, and it requires a great deal of work to reverse the changes.
Aside from -R, the following options are often used with chmod and chown commands:
- -f or force. The command line will ignore any errors and apply the chmod and chown commands.
- -v (verbose) option gives you diagnostics of all files that are processed by the command.
- -c (changes) is similar to the -v option. However, it will only provide information when changes were successfully made.
Conclusion
In this tutorial, you have learned how to use chmod and chown commands to change permissions and owners in Linux. We also provided the basic syntax and several useful options that you can combine with either of these commands.
To learn more about Linux command line, you can read our article on basic bash commands.
If you have any questions, feel free to comment below!
Domantas leads the content and SEO teams forward with fresh ideas and out of the box approaches. Armed with extensive SEO and marketing knowledge, he aims to spread the word of Hostinger to every corner of the world. During his free time, Domantas likes to hone his web development skills and travel to exotic places.
Источник