Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       setfsgid  -  stabilește  identitatea  grupului  utilizat pentru verificările sistemului de
       fișiere

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <sys/fsuid.h>

       int setfsgid(gid_t fsgid);

DESCRIERE

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

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

       setfsgid() va reuși numai dacă apelantul este super-utilizatorul sau dacă fsgid corespunde
       fie  ID-ului  real  al  grupului apelantului, fie ID-ului efectiv al grupului, fie ID-ului
       salvat al grupului 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  grupului  de
       sisteme de fișiere anterior al apelantului.

VERSIUNI

       Acest apel de sistem este disponibil începând cu Linux 1.2.

STANDARDE

       setfsgid()  este specific Linux și nu ar trebui să fie utilizat în programe destinate a fi
       portabile.

NOTE

       Conceptul de identificare a grupului de fișiere și apelul de  sistem  setfsgid()  au  fost
       inventate din motive istorice care nu mai sunt aplicabile pe nucleele Linux moderne.  A se
       vedea setfsuid(2)  pentru  o  discuție  despre  motivul  pentru  care  utilizarea  atât  a
       setfsuid(2), cât și a setfsgid() nu mai este necesară în prezent.

       Apelul  de  sistem  original  Linux  setfsgid()  suporta  doar  ID-uri de grup pe 16 biți.
       Ulterior, Linux 2.4 a adăugat setfsgid32() care acceptă ID-uri pe  32  de  biți.   Funcția
       învăluitoare  glibc  setfsgid()  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 către nucleu fără trunchierea
       numerelor întregi (deoarece nucleul este vechi și nu acceptă  ID-uri  de  grup  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  alt  apel,  cum ar fi setfsgid(-1) (care va eșua
       întotdeauna), pentru a determina dacă un apel anterior  la  setfsgid()  a  schimbat  ID-ul
       grupului  de  fișiere din sistemul de fișiere.  Cel puțin, ar trebui să se returneze EPERM
       atunci când apelul eșuează (deoarece apelantului îi lipsește capacitatea CAP_SETGID).

CONSULTAȚI ȘI

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

TRADUCERE

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

       Această  traducere  este  documentație  gratuită;  citiți  Licența  publică  generală  GNU
       Versiunea 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.