Linux File Permissions Overview

Understanding Linux File Permissions

Overview of File Ownership
  • Types of Owners: In Linux, every file or directory is assigned three types of owners:
  • User: The individual who created the file, holds the most control.
  • Group: Consists of users who share similar permissions to access the file.
  • Others: Users who are neither the file owner nor part of the group, having the least control.
Types of Permissions
  • Read (r): Permission to open and read the contents of a file.
  • Write (w): Permission to modify or delete the file.
  • Execute (x): Permission to run the file as a program.
Permission Representation
  1. Binary Representation: Each permission is represented by a bit:
  • Read: 1,
  • Write: 1,
  • Execute: 1
  • Example: rwx is represented as 111 (binary).
  1. Octal Representation: Each permission value is assigned a numerical value:
  • Read: 4
  • Write: 2
  • Execute: 1
  • Combined, rwx equals 7 (4+2+1).
  1. String Representation: Represents the permissions in a simple format such as rwx.
Practical Example of Permissions
  • Given a file with the following permissions:
  • Owner: rwx (7)
  • Group: rw- (6)
  • Others: r-- (4)
  • Octal Representation: 764
  • Setting: Use chmod 764 filename to set permissions.
Special Permission Bits
  1. setuid:
  • Allows an executable file to run with the permissions of the owner, not the user running it.
  • Example: passwd command uses setuid to enable regular users to change their passwords.
  • When set, the execute bit for owner shows as s.
  1. setgid:
  • Allows an executable to run with the permissions of the group's owner.
  • On directories, ensures new files inherit the group ownership, beneficial for team project directories.
  • When set, the execute bit for group shows as s.
  1. Sticky Bit:
  • Ensures that only the file owner, directory owner, or root can delete or rename files within a directory.
  • Commonly used in directories like /tmp to prevent file deletion by other users.
  • When set, the execute bit for others shows as t.
Setting Special Permissions with chmod
  • Example Command to set permissions:
  • chmod 4755 important_script
    • Here, 4 sets the setuid bit; 7 gives owner read, write, and execute; 5 gives group and others read and execute.
Importance of Understanding Permissions
  • Proper file permissions management is essential for maintaining security.
  • Correct settings prevent unauthorized access and accidental modifications, safeguarding data and promoting collaboration in a Linux environment.