Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       setfsuid - stabilește identitatea utilizatorului utilizată pentru verificările sistemului de fișiere

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <sys/fsuid.h>

       [[depreciat]] int setfsuid(uid_t fsuid);

DESCRIERE

       În  Linux,  un  proces  are atât un ID de utilizator al sistemului de fișiere, cât și un ID de utilizator
       efectiv. ID-ul de utilizator al sistemului de fișiere (specific Linux) este utilizat  pentru  verificarea
       permisiunilor  la accesarea obiectelor sistemului de fișiere, în timp ce ID-ul de utilizator efectiv este
       utilizat pentru diverse alte tipuri de verificări ale permisiunilor (a se vedea credentials(7)).

       În mod normal, valoarea ID-ului de utilizator din sistemul de  fișiere  al  procesului  este  aceeași  cu
       valoarea  ID-ului său efectiv de utilizator. Acest lucru este așa, deoarece ori de câte ori ID-ul efectiv
       de utilizator al unui proces este modificat, nucleul modifică,  de  asemenea,  ID-ul  de  utilizator  din
       sistemul  de fișiere pentru a fi același cu noua valoare a ID-ului efectiv de utilizator. Un proces poate
       face ca valoarea ID-ului său de utilizator din sistemul de fișiere să difere  de  ID-ul  său  efectiv  de
       utilizator,  utilizând  setfsuid()  pentru  a  schimba ID-ul său de utilizator din sistemul de fișiere la
       valoarea indicată în fsuid.

       Apelurile explicite la setfsuid() și setfsgid(2) sunt (au fost) utilizate de  obicei  numai  de  programe
       precum  serverul Linux NFS care trebuie să schimbe ID-ul de utilizator și de grup utilizat pentru accesul
       la fișiere fără o modificare corespunzătoare a ID-urilor reale și efective de utilizator și  de  grup.  O
       modificare  a ID-urilor de utilizator normale pentru un program precum serverul NFS este (era) o gaură de
       securitate care îl poate expune la semnale nedorite; (cu toate acestea, această problemă este istorică (a
       fost odată o problemă); a se vedea mai jos).

       setfsuid() va reuși numai dacă apelantul este superutilizatorul sau dacă  fsuid  corespunde  fie  ID-ului
       real  al  utilizatorului  apelantului,  fie  ID-ului  efectiv  al  utilizatorului,  fie ID-ului salvat al
       utilizatorului stabilit, fie ID-ului curent al utilizatorului sistemului de fișiere.

VALOAREA RETURNATĂ

       Atât în caz de succes, cât și în caz de eșec, acest apel returnează ID-ul anterior al utilizatorului  din
       sistemul de fișiere al apelantului.

STANDARDE

       Linux.

ISTORIC

       Linux 1.2.

       În  momentul în care a fost introdus acest apel de sistem, un proces putea trimite un semnal către un alt
       proces cu același ID de utilizator efectiv. Acest lucru  însemna  că,  dacă  un  proces  privilegiat  își
       schimba  ID-ul  efectiv  de  utilizator  în scopul verificării permisiunilor pentru fișiere, atunci putea
       deveni vulnerabil la primirea de semnale trimise de un  alt  proces  (neprivilegiat)  cu  același  ID  de
       utilizator.  Atributul ID utilizator al sistemului de fișiere a fost astfel adăugat pentru a permite unui
       proces să își schimbe ID-ul de utilizator în scopul verificării permisiunilor de fișiere fără a deveni în
       același  timp  vulnerabil  la  primirea  de  semnale  nedorite.   Începând  cu  Linux  2.0,   gestionarea
       permisiunilor  de  semnal  este  diferită  (a  se vedea kill(2)), rezultatul fiind că un proces își poate
       schimba ID-ul de utilizator efectiv fără a fi vulnerabil la primirea de semnale de la  procese  nedorite.
       Astfel,  setfsuid()  este  în  prezent  inutil  și  ar trebui evitat în noile aplicații (la fel și pentru
       setfsgid(2)).

       Apelul de sistem original Linux setfsuid() accepta doar ID-uri de utilizator pe 16 biți. Ulterior,  Linux
       2.4  a  adăugat  setfsuid32()  care  acceptă  ID-uri pe 32 de biți. Funcția de învăluire glibc setfsuid()
       tratează în mod transparent variația dintre versiunile nucleului.

   Diferențe între biblioteca C și nucleu
       În glibc 2.15 și în versiunile anterioare, atunci când funcția de învăluire pentru acest apel  de  sistem
       determină  că  argumentul  nu  poate  fi  transmis nucleului fără trunchierea numerelor întregi (deoarece
       nucleul este vechi și nu acceptă ID-uri de utilizator pe 32  de  biți),  aceasta  va  returna  -1  și  va
       configura errno la EINVAL fără să încerce apelul de sistem.

ERORI

       Nu  se returnează nici un fel de indicații de eroare către apelant, iar faptul că atât apelurile reușite,
       cât și cele nereușite returnează aceeași valoare face imposibilă determinarea directă  a  succesului  sau
       eșecului apelului. În schimb, apelantul trebuie să apeleze la valoarea returnată de un apel ulterior, cum
       ar  fi  setfsuid(-1) (care va eșua întotdeauna), pentru a determina dacă un apel anterior la setfsuid() a
       schimbat ID-ul utilizatorului sistemului de fișiere. Cel puțin, EPERM ar trebui să  fie  returnat  atunci
       când apelul eșuează (deoarece apelantului îi lipsește capacitatea CAP_SETUID).

CONSULTAȚI ȘI

       kill(2), setfsgid(2), capabilities(7), credentials(7)

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel   Chelu
       <remusgabriel.chelu@disroot.org>

       Această traducere este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3  sau  o
       versiune   ulterioară   cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se  asumă  NICIO
       RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui manual, vă rugăm să  trimiteți  un  e-mail  la  translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                        setfsuid(2)