.\" -*- coding: UTF-8 -*- .\" Copyright (C), 1994, Graeme W. Wilford (Wilf). .\" and Copyright (C) 2010, 2014, 2015, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Fri Jul 29th 12:56:44 BST 1994 Wilf. .\" Changes inspired by patch from Richard Kettlewell .\" , aeb 970616. .\" Modified, 27 May 2004, Michael Kerrisk .\" Added notes on capability requirements .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH setuid 2 "30 martie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME setuid \- stabilește identitatea utilizatorului .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP .PP \fBint setuid(uid_t \fP\fIuid\fP\fB);\fP .fi .SH DESCRIERE \fBsetuid\fP() stabilește ID\-ul de utilizator efectiv al procesului apelant. În cazul în care procesul apelant este privilegiat (mai precis: dacă procesul are capacitatea \fBCAP_SETUID\fP în spațiul său de nume de utilizator), se stabilesc, de asemenea, UID real și set\-user\-ID salvat. .PP În Linux, \fBsetuid\fP() este implementat ca versiunea POSIX cu caracteristica \fB_POSIX_SAVED_IDS\fP. Acest lucru permite unui program set\-user\-ID (altul decât root) să renunțe la toate privilegiile de utilizator, să facă unele lucrări fără privilegii și apoi să reangajeze ID\-ul de utilizator efectiv inițial într\-un mod sigur. .PP Dacă utilizatorul este root sau dacă programul este set\-user\-ID\-root, trebuie să se acorde o atenție specială: \fBsetuid\fP() verifică ID\-ul de utilizator efectiv al apelantului și, dacă acesta este superutilizatorul, toate ID\-urile de utilizator legate de proces sunt stabilite la \fIuid\fP. După ce acest lucru s\-a întâmplat, este imposibil ca programul să recâștige privilegiile de root. .PP Astfel, un program set\-user\-ID\-root care dorește să renunțe temporar la privilegiile de root, să își asume identitatea unui utilizator neprivilegiat și apoi să redobândească privilegiile de root nu poate utiliza \fBsetuid\fP(). Puteți realiza acest lucru cu \fBseteuid\fP(2). .SH "VALOAREA RETURNATĂ" În caz de succes, se returnează zero. În caz de eroare, se returnează \-1, iar \fIerrno\fP este configurată pentru a indica eroarea. .PP \fINotă\fP: există cazuri în care \fBsetuid\fP() 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 \fBsetuid\fP(). .SH ERORI\-IEȘIRE .TP \fBEAGAIN\fP Apelul ar schimba UID\-ul real al apelantului (adică \fIuid\fP nu se potrivește cu UID\-ul real al apelantului), dar a existat un eșec temporar în alocarea structurilor de date necesare ale nucleului. .TP \fBEAGAIN\fP \fIuid\fP nu se potrivește cu ID\-ul real al apelantului și acest apel ar face ca numărul de procese aparținând ID\-ului real al utilizatorului \fIuid\fP să depășească limita de resurse \fBRLIMIT_NPROC\fP a apelantului. Începând cu Linux 3.1, acest caz de eroare nu mai apare (dar aplicațiile robuste ar trebui să verifice dacă există această eroare); a se vedea descrierea lui \fBEAGAIN\fP din \fBexecve\fP(2). .TP \fBEINVAL\fP ID\-ul de utilizator specificat în \fIuid\fP nu este valid în acest spațiu de nume de utilizator. .TP \fBEPERM\fP Utilizatorul nu este privilegiat (Linux: nu are capacitatea \fBCAP_SETUID\fP în spațiul său de nume de utilizator) și \fIuid\fP nu se potrivește cu UID\-ul real sau cu set\-user\-ID\-ul salvat al procesului de apelare. .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 \fBsetuid\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 POSIX.1\-2008. .SH ISTORIC POSIX.1\-2001, SVr4. .PP .\" SVr4 documents an additional EINVAL error condition. Nu este foarte compatibil cu apelul 4.4BSD, care stabilește toate ID\-urile de utilizator reale, salvate și efective. .PP Apelul de sistem original Linux \fBsetuid\fP() suporta doar ID\-uri de utilizator pe 16 biți. Ulterior, Linux 2.4 a adăugat \fBsetuid32\fP() care acceptă ID\-uri pe 32 de biți. Funcția învăluitoare glibc \fBsetuid\fP() tratează în mod transparent variația dintre versiunile de kernel. .SH NOTE Linux are conceptul de ID de utilizator al sistemului de fișiere, în mod normal egal cu ID\-ul efectiv al utilizatorului. Apelul \fBsetuid\fP() stabilește, de asemenea, ID\-ul de utilizator din sistemul de fișiere al procesului care îl apelează. A se vedea \fBsetfsuid\fP(2). .PP Dacă \fIuid\fP este diferit de vechiul UID efectiv, procesului îi va fi interzis să lase descărcări de imagine de memorie. .SH "CONSULTAȚI ȘI" \fBgetuid\fP(2), \fBseteuid\fP(2), \fBsetfsuid\fP(2), \fBsetreuid\fP(2), \fBcapabilities\fP(7), \fBcredentials\fP(7), \fBuser_namespaces\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 .