| setresuid(2) | System Calls Manual | setresuid(2) |
setresuid, setresgid - stabilesc ID-ul utilizatorului sau grupului real, efectiv și salvat
Biblioteca C standard (libc, -lc)
#define _GNU_SOURCE /* Consultați feature_test_macros(7) */ #include <unistd.h>
int setresuid(uid_t ruid, uid_t euid, uid_t suid); int setresgid(gid_t rgid, gid_t egid, gid_t sgid);
setresuid() stabilește ID-ul real al utilizatorului, ID-ul efectiv al utilizatorului și ID-ul salvat de set-user-ID al procesului apelant.
Un proces neprivilegiat își poate schimba UID-ul real, UID-ul efectiv și set-user-ID-ul salvat, fiecare cu unul dintre: UID-ul real curent, UID-ul efectiv curent sau set-user-ID-ul salvat curent.
Un proces privilegiat ( în Linux, un proces care are capacitatea CAP_SETUID) își poate stabili UID-ul real, UID-ul efectiv și set-user-ID-ul salvat la valori arbitrare.
În cazul în care unul dintre argumente este egal cu -1, valoarea corespunzătoare nu se modifică.
Indiferent de modificările aduse UID-ului real, UID-ului efectiv și set-user-ID-ului salvat, UID-ul sistemului de fișiere este întotdeauna stabilit la aceeași valoare ca și UID-ul efectiv (posibil nou).
În mod complet analog, setresgid() stabilește GID-ul real, GID-ul efectiv și set-group-ID-ul salvat al procesului apelant (și modifică întotdeauna GID-ul sistemului de fișiere pentru a fi același cu GID-ul efectiv), cu aceleași restricții pentru procesele neprivilegiate.
În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.
Notă: există cazuri în care setresuid() poate eșua chiar și atunci când apelantul este UID 0; este o gravă eroare de securitate să se omită verificarea pentru o returnare a unui eșec de la setresuid().
La nivelul nucleului, ID-urile de utilizator și ID-urile 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 credențiale. Implementarea „NPTL threading” se ocupă de cerințele POSIX prin furnizarea de funcții de învăluire pentru diferitele apeluri de sistem care modifică UID și GID ale proceselor. Aceste funcții învăluitoare (inclusiv cele pentru setresuid() și setresgid()) 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).
Niciunul.
Linux 2.1.44, glibc 2.3.2. HP-UX, FreeBSD.
Apelurile de sistem setresuid() și setresgid() originale Linux suportau numai ID-uri de utilizator și de grup pe 16 biți. Ulterior, Linux 2.4 a adăugat setresuid32() și setresgid32(), care acceptă ID-uri pe 32 de biți. Funcțiile de învăluire glibc setresuid() și setresgid() tratează în mod transparent variațiile dintre versiunile nucleului.
getresuid(2), getuid(2), setfsgid(2), setfsuid(2), setreuid(2), setuid(2), capabilities(7), credentials(7), user_namespaces(7)
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 |