Despre Linux

  • Facebook
  • Twitter
  • LinkedIn
  • Acasă
  • Linux
    • Comenzi Linux
    • Tutoriale
  • Kubernetes
  • RHCSA
    • Exerciții RHCSA
    • SELinux
    • Permisiuni
  • General
    • Open source
  • Contact

Permisiuni în Linux - permisiuni speciale

5 septembrie 2016 By Bobses 4 comentarii

În afara permisiunilor obișnuite din Linux pe care le-am descris într-un articol anterior, există și posibilitatea ca, prin intermediul unui singur bit, să stabilim niște permisiuni speciale pentru fișiere și directoare.

Aceste permisiuni speciale sunt:

Set User ID (SUID)

Opțiunea SUID este folosită pentru fișierele executabile. Ea îi spune sistemului Linux să ruleze programul respectiv cu permisiunile celui care deține fișierul (proprietarul), nu ale celui care îl execută.

De exemplu, dacă un fișier este deținut de superutilizator (root) și are setat bitul SUID, programul va rula cu privilegii de root și, prin urmare, poate accesa orice fișier de pe computer - acest aspect poate reprezenta o foarte gravă problemă de securitate!

Programele (fișierele executabile) care au bitul SUID setat sunt indicate printr-un s în poziția de execuție din grupul de permisiuni corespunzătoare proprietarului (folosiți comanda ls -l):

rwsr-xr-x

Să presupunem că avem setat bitul SUID la comanda rm  (fișierul se află în /bin) - asta înseamnă că oricine (orice utilizator) poate rula comanda rm cu drepturi de administrator și poate șterge orice fișier din sistem.

În cazul în care fișierul respectiv nu are drepturi de execuție pentru proprietar (owner), dar are totuși setat bitul SUID, această permisiune (deși nu va funcționa) va apărea în lista de permisiuni cu un S:

-rwSr-xr-x

Set Group ID (SGID)

Opțiunea SGID este similară lui SUID, dar este setată pentru poziția de execuție din setul de permisiuni pentru grup. Se notează cu s dacă fișierul sau directorul are drept de execuție pentru grup și cu S dacă fișierul sau directorul nu are drept de execuție pentru grup (în ultimul caz setarea acestui bit nu-și va face efectul):

-rwxr-sr-x

drwxr-Sr-x

SGID are efecte diferite, în funcție de tipul de fișier căruia i se aplică:

  • dacă i se aplică unui fișier executabil obișnuit, acesta va rula cu drepturile grupului care deține fișierul și nu cu grupul primar al utilizatorului care îl execută;
  • dacă i se aplică unui director, fișierele și subdirectoarele nou create în acest director (care are - reamintesc - setat bitul SGID), vor moșteni permisiunile grupului proprietarului directorului și nu pe ale utilizatorului care le creează.

Această permisiune specială este folosită în special pentru directoare, mai ales pentru crearea directoarelor shared.

Sticky bit

Bitul sticky este folosit pentru a proteja de la ștergere fișierele unui director în care au acces mai mulți utilizatori (cum ar fi /tmp) de către cei care nu le dețin. Când acest bit este prezent la un director, fișierele din interiorul său pot fi șterse numai de proprietar (cel care le-a creat) sau de administrator (root).

Bitul sticky este marcat cu ajutorul literei t pe poziția dreptului de execuție pentru alții (other):

drwxrwxrwt

În cazul în care directorul respectiv nu are drept de execuție pentru other, dar are totuși setat bitul sticky, acesta va apărea marcat cu litera T.

Dacă intrați în directorul rădăcină al instalării voastre Linux - / - și dați comanda ls -l, veți observa directorul /tmp cu bitul sticky setat.

Cum se alocă SUID, SGID și bitul sticky

În mod normal, permisiunile obișnuite se alocă cu 3 digiți în baza 8 (așa cum am descris în prima parte a articolului despre permisiuni).

Permisiunile SUID, SGID și sticky bit corespund următorilor biți:

1 - permisiune sticky bit

2 - SGID

4  - SUID

Următoarea comandă alocă permisiunea 644 unui fișier:

chmod 644 fișier

Linux tratează pe 644 ca fiind, de fapt, 0644. În cazul în care utilizăm 4 digiți, Linux va considera că vrem să alocăm permisiuni speciale. Să presupunem că vrem să alocăm următoarele permisiuni speciale (se va face suma biților prezentați mai sus pentru permisiunile speciale):

  • ambele permisiuni SUID și SGID - vom folosi al patrulea digit (cel din față) 6
  • toate cele 3 permisiuni speciale (SUID, SGID și sticky bit) - vom folosi al patrulea digit 7
  • doar SUID și sticky bit - vom folosi al patrulea digit 5

În imaginea de mai jos am setat toate cele 3 permisiuni speciale fișierului test cu 7644; după cum se observă, inițial fișierul test nu era executabil (din această cauză întâlnim literele mari S și T) - după ce-l facem executabil, va apărea astfel:

Într-un articol viitor voi prezenta modul de alocare a permisiunilor prin coduri și nu prin 3 sau 4 digiți în baza 8.

Partajează asta:

  • Dă clic pentru a partaja pe Facebook(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe LinkedIn(Se deschide într-o fereastră nouă)
  • Click to share on Twitter(Se deschide într-o fereastră nouă)

Similare

Din categoria: Permisiuni Etichete: directoare, fisiere, linux, permisiuni, RHCSA

Comentarii

  1. Catalin a zis

    20 mai 2019 la ora 16:42

    Inca un articol bun. Chiar daca ai folosit foarte bine expresia "fișierele executabile", pentru a inlatura orice suspiciune, eu as mai fi adaugat si faptul ca permisiunile speciale nu au efect asupra programelor interpretate (Ex.: scripturi shell, python etc.)

    Răspunde
    • Bobses a zis

      20 mai 2019 la ora 20:57

      Bună completare. 🙂

      Răspunde

Trackbacks

  1. Cum se montează permanent partițiile în Linux | Lumea lui Bobses spune:
    4 noiembrie 2016 la 20:06

    […] suid/nosuid – permite sau interzice folosirea atributelor suid sau sgid […]

    Răspunde
  2. Setarea implicită a permisiunilor în Linux: despre umask spune:
    9 septembrie 2016 la 20:08

    […] Pentru a afla ce valoare umask folosește distribuția noastră, vom da comanda simplă umask, fără niciun parametru. Valoarea umask este afișată cu 4 digiți (primul reprezintă valoarea octală pentru SUID, SGID sau bitul sticky): […]

    Răspunde

Lasă un răspunsAnulează răspunsul

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Copyright © 2025 · Bobses

Administrează consimțămintele pentru cookie-uri
Pentru a oferi cea mai bună experiență, folosim tehnologii, cum ar fi cookie-uri, pentru a stoca și/sau accesa informațiile despre dispozitive. Consimțământul pentru aceste tehnologii ne permite să procesăm date, cum ar fi comportamentul de navigare sau ID-uri unice pe acest site. Dacă nu îți dai consimțământul sau îți retragi consimțământul dat poate avea afecte negative asupra unor anumite funcționalități și funcții.
Funcționale Mereu activ
Stocarea tehnică sau accesul sunt strict necesare în scopul legitim de a permite utilizarea unui anumit serviciu cerut în mod explicit de către un abonat sau un utilizator sau în scopul exclusiv de a executa transmiterea unei comunicări printr-o rețea de comunicații electronice.
Preferințe
Stocarea tehnică sau accesul este necesară în scop legitim pentru stocarea preferințelor care nu sunt cerute de abonat sau utilizator.
Statistici
Stocarea tehnică sau accesul care sunt utilizate exclusiv în scopuri statistice. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
Stocarea tehnică sau accesul sunt necesare pentru a crea profiluri de utilizator pentru a trimite publicitate sau pentru a urmări utilizatorul pe un site web sau pe mai multe site-uri web în scopuri de marketing similare.
Administrează opțiunile Administrează serviciile Administrează vânzătorii {vendor_count} Citește mai multe despre aceste scopuri
Vizualizează preferințele
{title} {title} {title}