Linux File Permissions

Master Unix/Linux permissions, ACLs, and access control security

Understanding Linux Permissions

Permission Model

Linux uses a discretionary access control (DAC) model with three permission types:

Read (r = 4)
View file contents, list directory
Write (w = 2)
Modify file, add/remove in directory
Execute (x = 1)
Run file, access directory
Permission Entities
EntitySymbolDescriptionExample Command
Owner (User)uThe file ownerchmod u+w file
GroupgGroup memberschmod g-x file
OthersoEveryone elsechmod o+r file
AllaAll three entitieschmod a+x file
Reading Permission Output
-rw-r--r-- 1 user group 1024 Dec 1 10:00 file.txt
  • - : File type (- = file, d = directory, l = link)
  • rw- : Owner permissions (read, write, no execute)
  • r-- : Group permissions (read only)
  • r-- : Others permissions (read only)

Common Permissions

OctalSymbolicUse Case
755rwxr-xr-xExecutable files, directories
644rw-r--r--Regular files
600rw-------Private files (SSH keys)
777rwxrwxrwxAvoid! Security risk
700rwx------Private directories
664rw-rw-r--Group-editable files
2775rwxrwsr-xShared project directories (SGID)
1777rwxrwxrwtTemp directories (sticky bit)

⚠️ Security Tips

  • Never use 777 permissions
  • SSH keys must be 600
  • Home directories: 700 or 750
  • Web files: not writable by web server
  • Review SUID/SGID files regularly