Înțelegerea permisiunilor fișierelor Linux și cum să le gestionați
Una dintre fundațiile cheie ale securității sistemului Linux și arhitecturii multi-utilizator este modelul său de permisiuni pentru fișiere. Spre deosebire de Windows, Linux aplică strict proprietatea și controlul accesului pentru fiecare fișier și director din sistem. Stăpânirea permisiunilor pentru fișiere nu este doar o chestiune de securitate — este esențială pentru gestionarea serverelor, desfășurarea software-ului, rularea scripturilor și automatizarea sarcinilor.
Modelul de Permisiuni pentru Fișiere în Linux
Fiecare fișier și director în Linux are trei tipuri de drepturi de acces, atribuite trei tipuri de utilizatori:
| Clasa Utilizatorului | Descriere |
|---|---|
| proprietar | Utilizatorul care deține fișierul |
| grup | Utilizatori din grupul fișierului |
| alții | Toți ceilalți utilizatori din sistem |
Fiecare clasă poate primi trei tipuri de permisiuni:
| Permisiune | Simbol | Semnificație |
|---|---|---|
| citire | r | Vizualizare conținut fișier / listare dir |
| scriere | w | Modificare fișier sau director |
| executare | x | Rulare fișier sau accesare director |
Vizualizarea Permisiunilor cu ls -l
Utilizați comanda ls -l pentru a afișa permisiunile fișierelor:
ls -l myscript.sh
Ieșire:
-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.sh
Detaliere:
- – → fișier obișnuit
- rwx → proprietar (citire/scriere/executare)
- r-x → grup (citire/executare)
- r– → alții (numai citire)
Schimbarea Permisiunilor cu chmod
📌 Mod Simbolic:
chmod u+x myscript.sh # Add execute to user chmod g-w myscript.sh # Remove write from group chmod o=r myscript.sh # Set read-only for others
📌 Mod Numeric:
chmod 755 myscript.sh # rwx for owner, rx for group, rx for others
| Octal | Semnificație |
|---|---|
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r– |
| 0 | — |
Exemplu:
chmod 644 file.txt # owner: rw-, group: r--, others: r-- chmod 700 script.sh # owner: rwx, group/others: ---
Gestionarea Proprietății cu chown și chgrp
Schimbarea proprietarului fișierului:
chown alice file.txt
Schimbarea grupului:
chgrp devs file.txt
Schimbarea ambelor:
chown bob:admins file.txt
Utilizați -R pentru a aplica modificările recursiv:
chown -R www-data:www-data /var/www/
Biți Speciali de Permisiune
Linux suportă trei moduri speciale care modifică comportamentul implicit:
1. SUID (Set User ID)
- Se aplică fișierelor executabile
- Se execută cu privilegiile proprietarului, nu ale apelantului
chmod u+s /usr/bin/passwd
🔍 ieșire ls -l: -rwsr-xr-x
Caz de utilizare: /usr/bin/passwd trebuie să ruleze ca root pentru a actualiza /etc/shadow.
SGID (Set Group ID) s
- Pe fișiere: rulează cu privilegiul grupului fișierului
- Pe directoare: fișierele noi moștenesc grupul
chmod g+s /opt/project
🔍 ieșire ls -l: drwxr-sr-x
Util în folderele de dezvoltare partajate.
Sticky Bit t
- Pe directoare: doar proprietarul poate șterge/renumi fișierele sale
- Comun în /tmp pentru a proteja fișierele utilizatorilor
chmod +t /shared/folder
ls -ld /tmpdrwxrwxrwt 10 root root 4096 Ian 28 12:00 /tmp
Înțelegerea umask
umask setează permisiunile implicite pentru fișierele/directoarele noi:
Verificați valoarea curentă: umask
Valoare comună: 0022
| Fișier | Permisiuni implicite | Cu umask 0022 |
|---|---|---|
| Fișier | 666 → 644 | rw-r–r– |
| Dir | 777 → 755 | rwxr-xr-x |
Setați umask temporar:
umask 0077 # Files: 600, Dirs: 700
Corecturi Recursiv de Permisiune
Setați permisiunile pentru foldere și fișiere separat:
find /my/project -type d -exec chmod 755 {} ; find /my/project -type f -exec chmod 644 {} ;
Concluzie
Permisiunile fișierelor Linux oferă un control detaliat al accesului pentru securitate, medii multi-utilizator și automatizare. Înțelegerea modului de a vizualiza, schimba și aplica permisiunile vă împuternicește să gestionați serverele cu încredere, să protejați datele și să colaborați în siguranță.
Indiferent dacă desfășurați aplicații web, gestionați servere cloud sau construiți scripturi shell — a cunoaște modul de utilizare a chmod, chown, umask și biți speciali de permisiune este esențial.
