Can you completely explain the nine permissions bits on UNIX or Linux files?
Each file in UNIX or Linux has the nine permission bits as follows:
ls -l /etc/hosts
Sample outputs:
-rw-r--r-- 1 root root 401 2009-12-20 12:08 /etc/hosts
The Entry Type
There are total 10 bits -rw-r–r–:
The file mode printed under the -l option consists of the entry type (1st bit) and the permissions (9 bits). The entry type character describes the type of file, as follows:
- – Regular file.
- b Block special file (stored in /dev).
- c Character special file (stored in /dev).
- d Directory.
- l Symbolic link.
- p FIFO.
- s Socket.
- w Whiteout.
Examples
Show directory type with the ls command:
ls -ld /etc
Sample outputs:
drwxr-xr-x 170 root root 12288 2010-02-24 11:39 /etc
Show block device type (hard disk) with the ls command:
ls -l /dev/sda
Sample outputs:
brw-rw---- 1 root disk 8, 0 2010-02-24 11:32 /dev/sda
The Permissions Bits
The next three fields are three characters each for
- File owner permissions
- File group permissions
- Other permissions (not part of both owner or group)
Each field has three character positions as follows:
- r : The file is readable; if – it is not readable.
- w : the file is writable; if -, it is not writable.
- S : If in the owner permissions, the file is not executable and set-user-ID mode is set. If in the group permissions, the file is not executable and set-group-ID mode is set.
- s : If in the owner permissions, the file is executable and set-user-ID mode is set. If in the group permissions, the file is executable and set group-ID mode is set.
- x : The file is executable or the directory is searchable.
- – : The file is neither readable, writable, executable, nor set-user-ID nor set-group-ID mode, nor sticky.
These next two apply only to the third character in the other permissions.
- T The sticky bit is set (mode 1000), but not execute or search permission.
- t The sticky bit is set (mode 1000), and is searchable or executable.
References:
- ls command man page
🐧 1 comment so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
It understands very well.
Could you please elaborate about small t and big T and same for small s and big S?