setgid(2)

NUME
setgid - stabilește identitatea grupului

BIBLIOTECA
Bibliotecă C standard (libc, -lc)

REZUMAT
#include <unistd.h>

int setgid(gid_t identificator_grup(gid));

DESCRIERE
setgid() stabilește identificatorul efectiv de grup al procesului apelant. În cazul în care procesul apelant este privilegiat (mai exact: are capacitatea CAP_SETGID în spațiul său de nume de utilizator), se stabilesc, de asemenea, GID real și set-group-ID salvat.

În Linux, setgid() este implementat ca versiunea POSIX cu caracteristica _POSIX_SAVED_IDS. Acest lucru permite unui program set-group-ID care nu este set-user-ID-root să renunțe la toate privilegiile de grup, să facă unele lucrări fără privilegii și apoi să reangajeze ID-ul de grup efectiv inițial într-un mod sigur.

VALOAREA RETURNATĂ
În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI

EINVAL
    Identificatorul grupului specificat în identificator_grup(gid) nu este valabil în acest spațiu de nume de utilizator.

EPERM
    Procesul apelant nu este privilegiat (nu are capacitatea CAP_SETGID în spațiul său de nume de utilizator), iar identificator_grup(gid) nu se potrivește cu identificatorul de grup real sau cu identificatorul de grup salvat al procesului apelant.

STANDARDE
POSIX.1-2001, POSIX.1-2008, SVr4.

NOTE
Apelul de sistem original Linux setgid() suporta doar identificatori de grup pe 16 biți. Ulterior, Linux 2.4 a adăugat setgid32() care acceptă identificatori pe 32 de biți. Funcția de învăluire glibc setgid() tratează în mod transparent variația dintre versiunile de kernel.

  diferențe între biblioteca C și nucleu
La nivelul nucleului, identificatorii de utilizator și identificatorii de grup sunt un atribut pentru fiecare fir de execuție. Cu toate acestea, POSIX impune ca toate firele dintr-un proces să aibă aceleași acreditări. Implementarea NPTL a firelor de execuție se ocupă de cerințele POSIX prin furnizarea de funcții de acoperire pentru diferitele apeluri de sistem care modifică UID și GID ale proceselor. Aceste funcții de învăluire „wrapper” (inclusiv cea pentru setgid()) utilizează o tehnică bazată pe semnale pentru a se asigura că, atunci când un fir de execuție își schimbă acreditările, toate celelalte fire de execuție din proces își schimbă și ele acreditările. Pentru detalii, a se vedea nptl(7).

CONSULTAȚI ȘI
getgid(2), setegid(2), setregid(2), capabilities(7), credentials(7), user_namespaces(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.