월. 8월 4th, 2025

Why Permissions Matter

In Linux, file permissions are your system’s first line of defense. They control:

  • Who can access files/directories
  • Who can modify them
  • Who can execute programs/scripts
    Without proper permissions, your system is vulnerable to accidents or attacks.

Decoding Permission Syntax

Run ls -l to see permissions like this:

-rw-r--r-- 1 user group 4096 Jan 1 12:34 report.txt  

The string -rw-r--r-- breaks down as:

  1. First character: File type (- = file, d = directory, l = symlink)
  2. Next 9 characters: Three sets of rwx (Read, Write, eXecute):
    • Triplet 1: Owner permissions (rw-)
    • Triplet 2: Group permissions (r--)
    • Triplet 3: Others permissions (r--)

Permission Types Explained

Symbol File Effect Directory Effect
r Read content List directory contents (e.g., ls)
w Modify content Create/delete files in directory
x Execute as a program Enter directory (e.g., cd)

> 🔍 Example: A directory with r-x allows listing files (r) and entering it (x), but not creating/deleting files (missing w).


Changing Permissions: chmod

Symbolic Method (User-friendly)

chmod u+x script.sh    # Add execute (x) for owner (u)  
chmod g-w report.txt   # Remove write (w) from group (g)  
chmod o=r file.txt     # Set others (o) to read-only (r)  

Numeric Method (Octal)

Each permission set is a number:

  • r = 4
  • w = 2
  • x = 1

Combine for each role:

chmod 764 myfile  # Owner: 7 (4+2+1=rwx), Group: 6 (4+2=rw-), Others: 4 (r--)  

Managing Ownership

  • Change owner:
    sudo chown newuser filename  
  • Change group:
    sudo chgrp developers project/  
  • Change both:
    sudo chown user:group document.pdf  

Special Permissions

  1. SUID (4xxx): Executes as the file’s owner (e.g., chmod 4755 /usr/bin/passwd).
  2. SGID (2xxx): New files inherit the directory’s group (essential for team projects).
  3. Sticky Bit (1xxx): Prevents file deletion by non-owners in shared directories (e.g., /tmp).

Common Scenarios & Fixes

  • “Permission denied” when running a script?
    chmod +x script.sh  
  • Can’t edit a file you own?
    chmod u+w file.txt  
  • Team collaboration issues?
    sudo chgrp team /project/ && chmod 770 /project/  

Pro Tips

  • Use umask to set default permissions for new files (e.g., umask 022 ensures rw-r--r--).
  • Always grant the least privilege needed – avoid 777!
  • Check permissions recursively for directories:
    chmod -R 755 /myfolder/  

Permissions = Control + Security. Master them, and you master Linux’s core philosophy! 🔐🐧

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다