.\" -*- coding: UTF-8 -*- .\" Copyright (C) 1995, Thomas K. Dyas .\" and Copyright (C) 2013, 2019, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Created 1995-08-06 Thomas K. Dyas .\" Modified 2000-07-01 aeb .\" Modified 2002-07-23 aeb .\" Modified, 27 May 2004, Michael Kerrisk .\" Added notes on capability requirements .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH setfsuid 2 "30 martie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME setfsuid \- stabilește identitatea utilizatorului utilizată pentru verificările sistemului de fișiere .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP .PP \fB[[depreciat]] int setfsuid(uid_t \fP\fIfsuid\fP\fB);\fP .fi .SH DESCRIERE În Linux, un proces are atât un ID de utilizator al sistemului de fișiere, cât și un ID de utilizator efectiv. ID\-ul de utilizator al sistemului de fișiere (specific Linux) este utilizat pentru verificarea permisiunilor la accesarea obiectelor sistemului de fișiere, în timp ce ID\-ul de utilizator efectiv este utilizat pentru diverse alte tipuri de verificări ale permisiunilor (a se vedea \fBcredentials\fP(7)). .PP În mod normal, valoarea ID\-ului de utilizator din sistemul de fișiere al procesului este aceeași cu valoarea ID\-ului său efectiv de utilizator. Acest lucru este așa, deoarece ori de câte ori ID\-ul efectiv de utilizator al unui proces este modificat, nucleul modifică, de asemenea, ID\-ul de utilizator din sistemul de fișiere pentru a fi același cu noua valoare a ID\-ului efectiv de utilizator. Un proces poate face ca valoarea ID\-ului său de utilizator din sistemul de fișiere să difere de ID\-ul său efectiv de utilizator, utilizând \fBsetfsuid\fP() pentru a schimba ID\-ul său de utilizator din sistemul de fișiere la valoarea indicată în \fIfsuid\fP. .PP Apelurile explicite la \fBsetfsuid\fP() și \fBsetfsgid\fP(2) sunt (au fost) utilizate de obicei numai de programe precum serverul Linux NFS care trebuie să schimbe ID\-ul de utilizator și de grup utilizat pentru accesul la fișiere fără o modificare corespunzătoare a ID\-urilor reale și efective de utilizator și de grup. O modificare a ID\-urilor de utilizator normale pentru un program precum serverul NFS este (era) o gaură de securitate care îl poate expune la semnale nedorite; (cu toate acestea, această problemă este istorică (a fost odată o problemă); a se vedea mai jos). .PP \fBsetfsuid\fP() va reuși numai dacă apelantul este superutilizatorul sau dacă \fIfsuid\fP corespunde fie ID\-ului real al utilizatorului apelantului, fie ID\-ului efectiv al utilizatorului, fie ID\-ului salvat al utilizatorului stabilit, fie ID\-ului curent al utilizatorului sistemului de fișiere. .SH "VALOAREA RETURNATĂ" Atât în caz de succes, cât și în caz de eșec, acest apel returnează ID\-ul anterior al utilizatorului din sistemul de fișiere al apelantului. .SH STANDARDE Linux. .SH ISTORIC .\" Linux 1.1.44 .\" and in libc since libc 4.7.6. Linux 1.2. .PP În momentul în care a fost introdus acest apel de sistem, un proces putea trimite un semnal către un alt proces cu același ID de utilizator efectiv. Acest lucru însemna că, dacă un proces privilegiat își schimba ID\-ul efectiv de utilizator în scopul verificării permisiunilor pentru fișiere, atunci putea deveni vulnerabil la primirea de semnale trimise de un alt proces (neprivilegiat) cu același ID de utilizator. Atributul ID utilizator al sistemului de fișiere a fost astfel adăugat pentru a permite unui proces să își schimbe ID\-ul de utilizator în scopul verificării permisiunilor de fișiere fără a deveni în același timp vulnerabil la primirea de semnale nedorite. Începând cu Linux 2.0, gestionarea permisiunilor de semnal este diferită (a se vedea \fBkill\fP(2)), rezultatul fiind că un proces își poate schimba ID\-ul de utilizator efectiv fără a fi vulnerabil la primirea de semnale de la procese nedorite. Astfel, \fBsetfsuid\fP() este în prezent inutil și ar trebui evitat în noile aplicații (la fel și pentru \fBsetfsgid\fP(2)). .PP Apelul de sistem original Linux \fBsetfsuid\fP() accepta doar ID\-uri de utilizator pe 16 biți. Ulterior, Linux 2.4 a adăugat \fBsetfsuid32\fP() care acceptă ID\-uri pe 32 de biți. Funcția de învăluire glibc \fBsetfsuid\fP() tratează în mod transparent variația dintre versiunile nucleului. .SS "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 nucleului fără trunchierea numerelor întregi (deoarece nucleul este vechi și nu acceptă ID\-uri de utilizator pe 32 de biți), aceasta va returna \-1 și va configura \fIerrno\fP la \fBEINVAL\fP fără să încerce apelul de sistem. .SH 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 apel ulterior, cum ar fi \fIsetfsuid(\-1)\fP (care va eșua întotdeauna), pentru a determina dacă un apel anterior la \fBsetfsuid\fP() a schimbat ID\-ul utilizatorului sistemului de fișiere. Cel puțin, \fBEPERM\fP ar trebui să fie returnat atunci când apelul eșuează (deoarece apelantului îi lipsește capacitatea \fBCAP_SETUID\fP). .SH "CONSULTAȚI ȘI" \fBkill\fP(2), \fBsetfsgid\fP(2), \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 .