Understanding Octal Permission Bits in Linux
As a user of a system, to access a file in Linux and UNIX, it is important that a user has the required permission for that specific file or directory. Every file in UNIX or Linux has an owner and an associated group. It also has a set of permissions (read, write, and execute) with respect to the user, group, and others.
How to view permissions of a file in Linux
The ls command with the -l option is used to view the ownership and permission of a file:
# ls -l file01
-rw-r----- 1 root root 0 Feb 5 02:12 file01
Here, the first column of ls contains the permission information—that is, -rw-r—–. The letters r(read), w(write), and x(execute) specify permissions. The octal-mode specifies the rwx permission of a user together in octal format, which can be from 0 to 7. The following table explains the octal representation of a permission to a specific user:
Octal Value | Binary representation | Meaning |
---|---|---|
0 | 0 | No read, write, and execute permissions (—) |
1 | 1 | Only execute permission (–x) |
2 | 10 | Only write permission (-w-) |
3 | 11 | Write and execute permissions (-wx) |
4 | 100 | Only read permission (r–) |
5 | 101 | Read and execute permissions (r-x) |
6 | 110 | Read and write permissions (rw-) |
7 | 111 | Read, write, and execute permissions (rwx) |
Changing permission
The permissions bits applied to a file system object correspond directly to the values which can be specified in the 4 digit tuple supplied to the chmod utility in the following command:
# chmod abcd [file/dir]
Each value in the digit set abcd is made up of a sum of the values 1 2 and 4. By adding these values together for each digit, a value can be generated to set all file object attributes:
a - This digit controls special attribute settings. the value 1 sets the setuid bit, the value 2 sets the setgid bit, and the value 4 sets the sticky bit on the object
b, c and d - These digits control read write and execute permissions for the file owner, the file owners primary group, and all other users. The value 4 enables read permission, the value 2 enables write permission, and the value 1 enables execute permission.
Examples
To set a file file to be sticky, readable and writeable by the owner, readable by their primary group and inaccessible by everyone else:
# chmod 4610 filename
To give all permission to everyone on the system:
# chmod 0777 filename
For more information on chmod, see the chmod man page.
# man chmod