Economisiți 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul: Skills Începeți
Secțiuni
Administrație Linux

Cum să Verifici Permisiunile Fișierelor în Linux: Un Ghid Complet

Linux alimentează majoritatea serverelor din lume — de la mediile VPS Hosting la Servere Dedicate de nivel enterprise — și cu bună dreptate. Este rapid, stabil și construit cu securitatea la bază. Unul dintre cei mai fundamentali piloni ai acelei securități este sistemul de permisiuni ale fișierelor: un mecanism precis și elegant care controlează exact cine poate citi, modifica sau executa orice fișier sau director pe sistem.

Indiferent dacă ești un dezvoltator care implementează o aplicație web, un administrator de sistem care întărește un server, sau un începător care învață linia de comandă, înțelegerea modului de verificare și interpretare a permisiunilor fișierelor în Linux este o abilitate indispensabilă. Acest ghid acoperă tot ceea ce trebuie să știi — de la elementele de bază ale modelului de permisiuni la biții speciali avansați — cu comenzi practice și exemple din lumea reală.

Ce sunt permisiunile de fișiere Linux?

Fiecare fișier și director din Linux are un set de permisiuni atașate. Aceste permisiuni definesc ce acțiuni sunt permise și de către cine. Există trei tipuri de permisiuni de bază:

PermisiuneSimbolCe face pe un fișierCe face pe un director
CitirerVizualizează conținutul fișieruluiListează numele fișierelor din interior
ScrierewModifică sau șterge fișierulCreează sau elimină fișiere din interior
ExecuțiexRulează fișierul ca programIntră (navighează în) directorul

Aceste trei permisiuni sunt aplicate independent la trei categorii de utilizatori distincte:

  • Proprietar (utilizator) — Utilizatorul care deține fișierul, de obicei creatorul acestuia.
  • Grup — Orice utilizator care aparține grupului atribuit fișierului.
  • Alții — Toți ceilalți utilizatori din sistem.

Această matrice trei-la-trei de permisiuni oferă administratorilor Linux control granular și puternic asupra accesului la fiecare resursă din sistem.

Cum să Verifici Permisiunile Fișierelor: Comanda ls -l

Cea mai rapidă și cea mai frecvent utilizată metodă pentru a verifica permisiunile fișierelor este comanda ls -l (format de listare lungă).

ls -l file.txt

Exemplu de ieșire:

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 file.txt

Să analizez fiecare componentă a acestei ieșiri:

-  rw-  r--  r--   1   alice   developers   1024   Aug 16 12:30   file.txt
│   │    │    │    │     │          │          │         │             │
│   │    │    │    │     │          │          │         │             └─ Filename
│   │    │    │    │     │          │          │         └─ Last modified
│   │    │    │    │     │          │          └─ File size (bytes)
│   │    │    │    │     │          └─ Group name
│   │    │    │    │     └─ Owner name
│   │    │    │    └─ Number of hard links
│   │    │    └─ Others' permissions
│   │    └─ Group's permissions
│   └─ Owner's permissions
└─ File type (- = regular file, d = directory, l = symlink)

Deci -rw-r--r-- ne spune:

  • Proprietar (alice): Citire + Scriere (rw-)
  • Grup (developers): Doar citire (r--)
  • Alții: Doar citire (r--)

Verificarea Permisiunilor pentru Mai Multe Fișiere

Pentru a vedea permisiunile pentru toate fișierele dintr-un director deodată:

ls -la /var/www/html

Steagul -a include fișierele ascunse (cele care încep cu un punct). Acest lucru este deosebit de util atunci când auditezi directoarele serverului web pe un mediu Shared Web Hosting sau VPS.

Obținerea informațiilor detaliate despre permisiuni cu stat

Pentru o analiză mai detaliată — inclusiv reprezentări simbolice și numerice — utilizați comanda stat:

stat file.txt

Exemplu de ieșire:

  File: file.txt
  Size: 1024            Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 131073      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)
Access: 2024-08-16 12:30:00.000000000 +0000
Modify: 2024-08-16 12:30:00.000000000 +0000
Change: 2024-08-16 12:30:00.000000000 +0000

Linia cheie este:

Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)

Aceasta vă oferă:

  • Notație numerică (octală): 0644
  • Notație simbolică: -rw-r--r--
  • ID utilizator (UID) și ID grup (GID) cu numele lor lizibile

Comanda stat este neprețuită atunci când depanați erori de permisiuni pe servere de producție, deoarece oferă tot contextul de care aveți nevoie într-o singură ieșire.

Înțelegerea notației permisiunilor numerice (octale)

Permisiunile Linux pot fi exprimate ca numere, care este formatul utilizat de comenzi precum chmod. Fiecare tip de permisiune are o valoare asignată:

PermisiuneValoare numerică
Citire (r)4
Scriere (w)2
Execuție (x)1
Fără permisiune (-)0

Calculați valoarea permisiunii pentru fiecare categorie de utilizator prin adunarea valorilor:

CombinațieCalculValoare numerică
rwx4 + 2 + 17
rw-4 + 2 + 06
r-x4 + 0 + 15
r--4 + 0 + 04
---0 + 0 + 00

Un număr octal cu trei cifre reprezintă setul complet de permisiuni:

0644  →  Owner: 6 (rw-)  |  Group: 4 (r--)  |  Others: 4 (r--)
0755  →  Owner: 7 (rwx)  |  Group: 5 (r-x)  |  Others: 5 (r-x)
0700  →  Owner: 7 (rwx)  |  Group: 0 (---)  |  Others: 0 (---)

Verificarea permisiunilor pe directoare

Directoarele utilizează același model de permisiuni, dar semnificația fiecărui bit este ușor diferită. Utilizați ls -ld (notați marca -d) pentru a inspecta directorul în sine mai degrabă decât conținutul acestuia:

ls -ld myfolder

Exemplu de ieșire:

drwxr-x--- 2 alice developers 4096 Aug 16 12:30 myfolder

d inițial confirmă că aceasta este un director. Permisiunile se descompun după cum urmează:

  • Proprietar (alice): rwx — Poate lista, crea/șterge fișiere și intra în director
  • Grup (developers): r-x — Poate lista fișiere și intra, dar nu poate crea sau șterge
  • Alții: --- — Niciun acces

> Important: Bitul de execuție (x) pe un director înseamnă capacitatea de a-l intra (adică, utilizați cd). Fără x, un utilizator nu poate naviga în director chiar dacă are permisiune de citire. Aceasta este o sursă comună de confuzie pentru începători.

Biți de permisiune speciali: setuid, setgid și Sticky Bit

Dincolo de cei nouă biți de permisiune standard, Linux suportă trei biți de permisiune speciali care oferă control avansat al accesului:

1. setuid (s pe bitul de execuție al proprietarului)

Când este setat pe un fișier executabil, programul se execută cu privilegiile proprietarului fișierului în loc de ale utilizatorului care apelează. Acesta este modul în care comenzi precum passwd permit utilizatorilor obișnuiți să modifice /etc/shadow (care este deținut de root).

ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 Mar 27 2023 /usr/bin/passwd

s din poziția de execuție a proprietarului indică setuid.

2. setgid (s pe bitul de execuție al grupului)

Pe un fișier, programul se execută cu privilegiile grupului. Pe un director, fișierele noi create în interior moștenesc automat grupul directorului — util pentru dosarele de proiecte partajate.

ls -ld /shared/project
drwxrwsr-x 2 alice developers 4096 Aug 16 12:30 /shared/project

3. Sticky Bit (t pe bitul de execuție al altora)

Când este setat pe un director, doar proprietarul fișierului (sau root) poate șterge sau redenumi fișiere din interiorul acestuia, chiar dacă alții au permisiune de scriere. Aceasta este configurația standard pentru /tmp:

ls -ld /tmp
drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

t de la sfârșitul semnalelor indică faptul că sticky bit este activ.

Reprezentarea numerică a biților speciali:

Bit specialValoare numerică
setuid4000
setgid2000
Sticky bit1000

Deci drwxrwxrwt = 1777 (1000 + 777).

Tabel de Referință Completă a Permisiunilor

SimbolicNumericSemnificație pe un FișierSemnificație pe un Director
---0Fără accesFără acces
--x1Doar execuțieDoar intrare
-w-2Doar scriereModificare conținut (cu x)
-wx3Scriere + ExecuțieIntrare și modificare
r--4Doar citireListare nume (necesită x pentru a fi util)
r-x5Citire + ExecuțieListare și intrare
rw-6Citire + ScriereListare și modificare (fără intrare)
rwx7Acces completControl complet

Exemple de permisiuni din lumea reală

Iată cele mai comune modele de permisiuni pe care le veți întâlni în practică:

-rw-r--r-- (0644) — Fișier standard

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 config.txt

Proprietarul poate citi și scrie. Grupul și alții pot doar citi. Tipic pentru fișiere de configurare și conținut web.

-rwxr-xr-x (0755) — Script executabil sau binar

-rwxr-xr-x 1 alice developers 4096 Aug 16 12:30 deploy.sh

Proprietarul are acces complet. Toți ceilalți pot citi și executa, dar nu pot modifica. Standard pentru scripturi shell, binare de server web și executabile publice.

-rw------- (0600) — Fișier privat

-rw------- 1 alice alice 1679 Aug 16 12:30 id_rsa

Doar proprietarul poate citi sau scrie. Niciun acces pentru alții. Necesar pentru chei private SSH — SSH va refuza să utilizeze un fișier de cheie cu permisiuni mai largi.

drwxr-xr-x (0755) — Director public standard

drwxr-xr-x 5 alice developers 4096 Aug 16 12:30 public_html

Comun pentru directoarele rădăcină web. Proprietarul are control complet; alții pot naviga și intra.

drwx------ (0700) — Director privat

drwx------ 3 alice alice 4096 Aug 16 12:30 .ssh

Complet privat. Doar proprietarul poate accesa. Necesar pentru directorul ~/.ssh.

drwxrwxrwt (1777) — Scris de toți cu Sticky Bit

drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

Toți pot crea fișiere, dar doar proprietarul fiecărui fișier poate șterge propriile fișiere.

Sfaturi practice pentru mediile de server

Dacă gestionezi un server Linux — fie că este un VPS care rulează o aplicație web, un server de mail securizat cu un SSL Certificate, sau o mașină care găzduiește mai multe domenii înregistrate prin Domain Registration — iată câteva practici esențiale privind permisiunile:

  1. Nu seta niciodată 777 pe fișiere sau directoare decât dacă ai un motiv foarte specific și temporar. Fișierele care pot fi scrise de oricine sunt un risc major de securitate.
  2. Fișierele serverului web (de exemplu, sub /var/www/) ar trebui să fie de obicei 644 pentru fișiere și 755 pentru directoare, deținute de utilizatorul aplicației tale.
  3. Cheile SSH trebuie să fie 600 pentru cheile private și 644 pentru cheile publice. SSH impune aceasta strict.
  4. Fișierele de configurare care conțin parole sau chei API ar trebui să fie 600 sau 640 cel mult.
  5. Folosește find pentru a audita permisiunile pe un arbore de directoare:
   # Find all world-writable files (potential security risk)
   find /var/www -type f -perm -o+w

   # Find all SUID files (for security auditing)
   find / -type f -perm -4000 2>/dev/null

Referință rapidă de comenzi

SarcinăComandă
Listează permisiunile unui fișierls -l filename
Listează permisiunile tuturor fișierelor dintr-un directorls -la /path/to/dir
Verifică permisiunile directorului în sinels -ld /path/to/dir
Obține detalii complete inclusiv permisiuni numericestat filename
Schimbă permisiunile (simbolic)chmod u+x filename
Schimbă permisiunile (numeric)chmod 755 filename
Schimbă proprietarul fișieruluichown user:group filename
Schimbă permisiunile recursivchmod -R 755 /path/to/dir
Găsește fișiere care pot fi scrise de toți utilizatoriifind . -perm -o+w -type f

Concluzie

Înțelegerea permisiunilor de fișiere Linux nu este doar un exercițiu academic — este o abilitate practică, zilnică pentru oricine gestionează servere, implementează aplicații sau lucrează într-un mediu Linux. Pentru a rezuma principalele puncte de reținut:

  • Utilizați ls -l pentru o privire de ansamblu rapidă și ușor de citit a permisiunilor pe fișiere și directoare.
  • Utilizați stat când aveți nevoie atât de reprezentări simbolice cât și numerice, împreună cu detaliile de proprietate.
  • Stăpâniți ambele notații — simbolică (rwx) și numerică (755, 644) — deoarece diferite instrumente și documentații folosesc ambele în mod interschimbabil.
  • Rețineți diferența directoarelor: bitul de execuție (x) pe un director înseamnă capacitatea de a-l accesa, nu de a-l executa.
  • Fiți conștienți de biții speciali — setuid, setgid și sticky bit — deoarece apar frecvent pe sistemele de producție și au implicații semnificative pentru securitate.

Gestionarea corectă a permisiunilor este o piatră de temelie a securității Linux. Indiferent dacă rulați un proiect personal pe VPS Hosting sau administrați o flotă de Servere Dedicate, obținerea permisiunilor corecte de la început vă va salva de vulnerabilități de securitate, aplicații defecte și nenumărate ore de depanare în viitor.