setfsgid(2) | System Calls Manual | setfsgid(2) |
NUME
setfsgid - stabilește identitatea grupului utilizat pentru verificările sistemului de fișiere
BIBLIOTECA
Biblioteca C standard (libc, -lc)
SINOPSIS
#include <sys/fsuid.h>
[[deprecated]] 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.
STANDARDE
Linux.
ISTORIC
Linux 1.2.
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.
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.
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
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.
2 mai 2024 | Pagini de manual de Linux 6.9.1 |