5. Permisinea setuid

Există multe cazuri în care utilizatorii normali au nevoie de elevarea privilegiilor pentru a duce la bun sfârșit diferite sarcini. Administratorul de sistem nu poate fi întotdeauna acolo pentru a introduce parola root de fiecare dată atunci când un utilizator este nevoit să acceseze un fișier protejat, așa că există anumiți biți speciali care permit acest lucru. Set User ID permite unui utilizator să ruleze un program mai degrabă ca și proprietarul acelui fișier, și nu ca el însuși.

Haideți să ne uităm la un exemplu:

Să spunem că am vrea să ne schimbăm parola. Destul de simplu, nu? Pur și simplu vom folosi comanda passwd:

$ passwd

Ce face până la urmă comanda password? Aceasta modifică câteva fișiere, dar cel mai important modifică fișierul /etc/shadow. Haideți să ne uităm un pic la acest fișier:

$ ls -l /etc/shadow
-rw-r----- 1 root shadow 1134 Dec 1 11:45 /etc/shadow

Opa! Ia stați un pic! Acest fișier este deținut de către utilizatorul root. Cum este posibil ca până la urmă să putem modifica un fișier care nu este deținut de utilizatorul nostru?

Haideți să ne uităm la un alt set de permisiuni. De data aceasta rulăm comanda:

$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 47032 Dec 1 11:45 /usr/bin/passwd

Veți observa că există un nou bit de permisiune marcat aici cu litera s. Acest bit de permisune este ceea ce numim SUID, și atunci când un fișier are acest bit de permisiune, acesta permite utilizatorului care a lansat programul să preia permisiunile utilizatorului proprietar, desigur și permisiunea de execuție. În acest caz utilizatorul proprietar al fișierului este root. Pe scurt în momentul în care un utilizator rulează comanda password, acestea de fapt îl rulează ca și root.

De acceea putem accesa fișiere protejate, ca de exemplu /etc/shadow, atunci când rulăm comanda passwd. Acum dacă ștergeți acel bit, veți obeseva că nu veți mai putea să modificați fișierul /etc/shadow și prin urmare nu veți mai putea schiba parola proprie.

Modificarea SUID

La fel ca orice permisiune normală, există două modalități pentru modificarea permisiunilor SUID.

Modul simbolic:

$ sudo chmod u+s fisierul_meu

Modul numeric:

$ sudo chmod 4755 fisierul_meu

După cum cred că ați observat deja, SUID este marcat cu ajutorul cifrei 4 și este poziționat în fața setului celor 3 biți. Mai puteți vedea permisiunea SUID marcată cu litera S, care reprezită de fapt același lucru, dar nu are permisiunea de execuție.


Exerciții

Studiați cu atenție permisiunile fișierului /etc/passwd. Mai observați și altceva? Fișierele cu permisiunea SUID activată sunt, de asemenea ușor de deosebit.


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

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