Change of access right (permission) - chmod
Use the chmod command to change file and directory permissions.
The chmod command has two modes: symbolic mode and numeric mode. In symbolic mode, access rights can be added, deleted, and specified. In the numeric mode, the input of the option part of the command is shortened, but it can only be fixed to the specified access right.
Last Update : January 07, 2020
Change of access right (permission) - chmod
- Example of using the symbolic mode and numeric mode
- How to Use the chmod Command
- Explanation of symbols in symbolic mode
- Explanation of numeric mode
1. Example of using the symbolic mode and numeric mode
This is an example of use in symbolic mode and numeric mode. Detailed usage will be described later.
Numeric mode Permission set to 755. $ chmod 755 test.txt $ ls -l total 4 -rwxr-xr-x 1 test_user test_user 7 Jan 7 21:49 test.txt Symbolic mode Add write permission to "group". $ chmod g+w test.txt $ ls -l total 4 -rwxrwxr-x 1 test_user test_user 7 Jan 7 21:49 test.txt Remove "execute" permission from "group" and "other" permissions. $ chmod go-x test.txt $ ls -l total 4 -rwxrw-r-- 1 test_user test_user 7 Jan 7 21:49 test.txt
2. How to Use the chmod Command
Usage
chmod [options] mode file...
Useful options
OPTIONS | Meaning |
---|---|
-v, --verbose | Displays in detail the actions that have been or have not been changed for all files. |
-R, --recursive | Recursively change permissions on directories and what they contain. |
# chmod -v 644 test.txt
mode of `test.txt' retained as 0644 (rw-r--r--) ← output a diagnostic for every file processed.
mode
Specify permissions in mode. The details of "mode" are described in the next section.
3. Explanation of symbols in symbolic mode
In symbols mode, the "mode" part of the chmod format is described by the following symbols.
[ugoa...][[+-=][rwxXstugo...]...][,...]
For example,
chmod g+w file.txt
Write as this.
When specifying permissions in symbolic mode, they begin with one of "u, g, o, a". "u, g, o, a" specifies the target whose access authority is to be changed.
The meaning of the symbols is as follows.
Symbol | Meaning |
---|---|
u | Owner |
g | Owning group |
o | Other accounts that are neither the owner nor the owning group. |
a | All meaning. It means that u, g, o are all selected. |
If omitted | "u, g, o, a" can be omitted. In that case, "a" is designated. |
Next, specify +,-, =. These operators have the following meaning.
Symbol | Meaning |
---|---|
+ | Add selected permissions. |
- | Remove selected permissions. |
= | Make the selected access right. |
Finally, specify the access rights.
Symbol | Meaning |
---|---|
r | read |
w | write |
x | execute (or search for directories) |
Notes
As for access authority, I think that you use rwx often, but there are other things like the following.
Symbol | Meaning |
---|---|
X | If the execution right is set for the owner, group, or any other, add (delete) the execution right. |
s | Set User ID, Set Group ID.(Explain on another page) |
t | sticky bit.(Explain on another page) |
u | Represents the access rights set for the owner part. For example, g + u adds the same permissions to the group as the owner. |
g | The access rights set for the group part. |
o | The access rights set for the other parts. |
Specify multiple changes at once
You can also specify access rights at once, separated by commas.
For example,
chmod g+r,o+r test.txt
* There must be no space after the ",".
You can also specify rwx for g.
chmod g+rwx test.txt
Convenient because you can set multiple access permissions at once.
4. Explanation of numerical mode
Numerical mode is simpler than symbolic mode and allows you to set permissions for specified numbers.
How to make numbers is also explained in "Symbolic notation and numerical notation of access right (permission)".
Numeric | Meaning |
---|---|
1000 | sticky bit |
2000 | Set Group ID |
4000 | Set User ID |
100 | Owner execute |
200 | Owner write |
400 | Owner read |
10 | Owning group execute |
20 | Owning group write |
40 | Owning group read |
1 | Other accounts execute |
2 | Other accounts write |
4 | Other accounts read |
You can calculate the number that should be assigned to a mode by adding the number representing the desired authority.
For example, if the owner needs execute, write, and read, and the group needs read, and other needs read permissions,
100 + 200 + 400 + 40 + 4 = 744
become.
chmod 744 test.txt
Will set permissions such as execute, write, read for owner + read for group + read for others.