Daily Weekly Monthly

Daily Shaarli

May 2, 2025

Linux File Links and Permissions

Links

Soft Link (Symbolic Link)

  • ln -s
  • Link will be removed if the original file is removed or renamed.

Hard Link

  • ln
  • Deleting, renaming, or moving the original file will not affect the hard link.

Diagram

       INODE
        ↑
MY HARD LINK ← MYFILE.TXT → MY-SOFT-LINK

Command to check links:

ls -lTri

File Permissions

Permission Types

Symbol Permission Example (Mnemonic)
R Read Riri (4)
W Write Winnie (2)
X Execute Xena (1)

Each Permission (R, W, X) Can Be Controlled at Three Levels

  • U → User
  • G → Group
  • O → Others (Everyone)

Permission Strings

Example:

-rwxrwxrwx
 |   |  |
 |   |  └── Others
 |   └───── Group
 └───────── User

To remove write permission from all:

chmod a-w filename

To add read and write permission for user:

chmod u+rw filename

Directory Permissions

Example:

drwxrwxrwx
^   ^  ^
|   |  └── Others
|   └───── Group
└───────── User

Numeric Permission Mapping

Value Permissions Symbol Mnemonic
0 No permission ---
1 Execute --x Xena
2 Write -w- Winnie
3 Execute + Write -wx
4 Read r-- Riri
5 Read + Execute r-x
6 Read + Write rw-
7 Read + Write + Exec rwx

Example to set permissions:

chmod 764 file

Breakdown:

  • User (7) → rwx
  • Group (6) → rw-
  • Others (4) → r--
Navigating File System / Linux filetypes
  • ls -l → List
  • pwd → Print working directory

dr-xr-xr-x
|
directories


-rw-r--r--
|
file


Linux File Types

Symbol Type
- Regular file
d Directory
l Link
c Special file or device file
s Socket → Network communication / process data between external processes
p Named pipe → FIFO → First In First Out, data between internal processes
b Block device

Inode = Pointer or number of a file on a hard disk.

Linux filesystem

/boot -> Grub.cfg
/root -> home of root
/dev -> system device (mouse, keyboard)
/etc -> configuration files
/bin -> /usr/bin -> everyday user commands
/sbin -> /usr/sbin -> system/filesystem commands
/opt -> third party app (not part of os)
/proc -> running process (only in memory)
/lib -> /usr/lib -> C prog lib
/tmp -> temporary folder
/home -> user dir
/var -> system logs
/run -> system daemon -> store temporary runtime / PID file
/mnt -> mount external file system
/media -> CDrom