.\" -*- coding: UTF-8 -*- .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) .\" and Copyright (C) 2008, 2010, 2015, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified Thu Oct 31 12:04:29 1996 by Eric S. Raymond .\" Modified, 27 May 2004, Michael Kerrisk .\" Added notes on capability requirements .\" 2008-05-03, mtk, expanded and rewrote parts of DESCRIPTION and RETURN .\" VALUE, made style of page more consistent with man-pages style. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getgroups 2 "30 martie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME getgroups, setgroups \- obține/stabilește o listă de ID\-uri de grupuri suplimentare .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP .PP \fBint getgroups(int \fP\fIsize\fP\fB, gid_t \fP\fIlist\fP\fB[]);\fP .PP \fB#include \fP .PP \fBint setgroups(size_t \fP\fIsize\fP\fB, const gid_t *_Nullable \fP\fIlist\fP\fB);\fP .fi .PP .RS -4 Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați \fBfeature_test_macros\fP(7)): .RE .PP \fBsetgroups\fP(): .nf Începând cu glibc 2.19: _DEFAULT_SOURCE glibc 2.19 și versiunile anterioare: _BSD_SOURCE .fi .SH DESCRIERE \fBgetgroups\fP() returnează în \fIlist\fP ID\-urile de grup suplimentare ale procesului apelant. Argumentul \fIsize\fP trebuie să fie definit la numărul maxim de elemente care pot fi stocate în memoria tampon indicată de \fIlist\fP. În cazul în care procesul de apelare este membru a mai mult de \fIsize\fP grupuri suplimentare, apare o eroare. .PP Nu este specificat dacă ID\-ul efectiv al grupului procesului apelant este inclus în lista returnată; (astfel, o aplicație trebuie să apeleze și \fBgetegid\fP(2) și să adauge sau să elimine valoarea rezultată). .PP Dacă \fIsize\fP este zero, \fIlist\fP nu este modificat, dar se returnează numărul total de ID\-uri de grup suplimentare pentru proces. Acest lucru permite apelantului să determine dimensiunea unei liste \fIlist\fP alocate dinamic, care va fi utilizată într\-un apel ulterior la \fBgetgroups\fP(). .PP \fBsetgroups\fP() stabilește ID\-urile de grup suplimentare pentru procesul apelant. Sunt necesare privilegii corespunzătoare (a se vedea descrierea erorii \fBEPERM\fP, mai jos). Argumentul \fIsize\fP specifică numărul de ID\-uri de grup suplimentare din memoria tampon indicată de \fIlist\fP. Un proces poate renunța la toate grupurile sale suplimentare odată cu apelul: .PP .in +4n .EX setgroups(0, NULL); .EE .in .SH "VALOAREA RETURNATĂ" În caz de succes, \fBgetgroups\fP() returnează numărul de ID\-uri de grup suplimentare. În caz de eroare, se returnează \-1, iar \fIerrno\fP este configurată pentru a indica eroarea. .PP În caz de succes, \fBsetgroups\fP() returnează 0. În caz de eroare, se returnează \-1, iar \fIerrno\fP este configurată pentru a indica eroarea. .SH ERORI\-IEȘIRE .TP \fBEFAULT\fP \fIlist\fP are o adresă nevalidă. .PP \fBgetgroups\fP() poate eșua în plus cu următoarea eroare: .TP \fBEINVAL\fP \fIsize\fP este mai mic decât numărul de ID\-uri de grup suplimentare, dar nu este zero. .PP \fBsetgroups\fP() poate eșua în plus cu următoarele erori: .TP \fBEINVAL\fP \fIsize\fP este mai mare decât \fBNGROUPS_MAX\fP (32 înainte de Linux 2.6.4; 65536 începând cu Linux 2.6.4). .TP \fBENOMEM\fP Memorie insuficientă. .TP \fBEPERM\fP Procesul apelant are privilegii insuficiente (apelantul nu are capacitatea \fBCAP_SETGID\fP în spațiul de nume al utilizatorului în care se află). .TP \fBEPERM\fP (începând cu Linux 3.19) Utilizarea \fBsetgroups\fP() este interzisă în acest spațiu de nume de utilizator. A se vedea descrierea \fI/proc/\fPpid\fI/setgroups\fP în \fBuser_namespaces\fP(7). .SH VERSIUNI .SS "Diferențe între biblioteca C și nucleu" 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 cea pentru \fBsetgroups\fP()) 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 \fBnptl\fP(7). .SH STANDARDE .TP \fBgetgroups\fP() POSIX.1\-2008. .TP \fBsetgroups\fP() Niciunul. .SH ISTORIC .TP \fBgetgroups\fP() SVr4, 4.3BSD, POSIX.1\-2001. .TP \fBsetgroups\fP() SVr4, 4.3BSD. Deoarece \fBsetgroups\fP() necesită privilegii, nu este acoperit de POSIX.1. .PP Apelul de sistem original Linux \fBgetgroups\fP() accepta numai ID\-uri de grup pe 16 biți. Ulterior, Linux 2.4 a adăugat \fBgetgroups32\fP(), care acceptă ID\-uri pe 32 de biți. Funcția învăluitoare glibc \fBgetgroups\fP() tratează în mod transparent variația dintre versiunile de kernel. .SH NOTE Un proces poate avea până la \fBNGROUPS_MAX\fP ID\-uri de grup suplimentare în plus față de ID\-ul de grup efectiv. Constanta \fBNGROUPS_MAX\fP este definită în \fI\fP. Setul de ID\-uri de grup suplimentare este moștenit de la procesul părinte și este păstrat prin intermediul unui \fBexecve\fP(2). .PP Numărul maxim de ID\-uri de grup suplimentare poate fi aflat în timpul execuției folosind \fBsysconf\fP(3): .PP .in +4n .EX long ngroups_max; ngroups_max = sysconf(_SC_NGROUPS_MAX); .EE .in .PP Valoarea maximă de returnare a lui \fBgetgroups\fP() nu poate fi mai mare decât cu unu față de această valoare. Începând cu Linux 2.6.4, numărul maxim de ID\-uri de grup suplimentare este, de asemenea, expus prin intermediul fișierului de numai citire specific Linux, \fI/proc/sys/kernel/ngroups_max\fP. .SH "CONSULTAȚI ȘI" \fBgetgid\fP(2), \fBsetgid\fP(2), \fBgetgrouplist\fP(3), \fBgroup_member\fP(3), \fBinitgroups\fP(3), \fBcapabilities\fP(7), \fBcredentials\fP(7) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .