seteuid(2)

NUME
seteuid, setegid, setegid - stabilește ID-ul efectiv al utilizatorului sau al grupului

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <unistd.h>

int seteuid(uid_t euid);
int setegid(gid_t egid);

    Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

seteuid(), setegid():
    _POSIX_C_SOURCE >= 200112L
        || /* glibc <= 2.19: */ _BSD_SOURCE

DESCRIERE
seteuid() stabilește ID-ul de utilizator efectiv al procesului apelant. Procesele neprivilegiate pot stabili ID-ul efectiv al utilizatorului doar la ID-ul real al utilizatorului, la ID-ul efectiv al utilizatorului sau la ID-ul salvat de set-user-ID.

Exact același lucru este valabil pentru setegid() cu „grup” în loc de „utilizator”.

VALOAREA RETURNATĂ
Î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 seteuid() 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 seteuid().

ERORI-IEȘIRE

EINVAL
    ID-ul utilizatorului sau al grupului țintă nu este valabil în acest spațiu de nume de utilizator.

EPERM
    În cazul seteuid(): procesul apelant nu este privilegiat (nu are capacitatea CAP_SETUID în spațiul său de nume de utilizator), iar euid nu se potrivește cu ID-ul real actual al utilizatorului, cu ID-ul efectiv actual al utilizatorului sau cu ID-ul actual salvat al set-user-ID.

    În cazul setegid(): procesul de apelare nu este privilegiat (nu are capacitatea CAP_SETGID în spațiul său de nume de utilizator) și egid nu corespunde ID-ului de grup real curent, ID-ului de grup efectiv curent sau ID-ului de grup salvat curent.

VERSIUNI
Setting the effective user (group) ID to the saved set-user-ID (saved set-group-ID) is possible since Linux 1.1.37 (1.1.38). On an arbitrary system one should check _POSIX_SAVED_IDS.

În glibc 2.0, seteuid(euid) este echivalent cu setreuid(-1, euid) și, prin urmare, poate modifica set-user-ID salvat. În glibc 2.1 și ulterior, este echivalent cu setresuid(-1, euid, -1) și, prin urmare, nu modifică set-user-ID salvat. Observații analoge sunt valabile pentru setegid(), cu diferența că modificarea implementării de la setregid(-1, egid) la setresgid(-1, egid, -1) a avut loc în glibc 2.2 sau 2.3 (în funcție de arhitectura mașinii).

În conformitate cu POSIX.1, seteuid() (setegid()) nu trebuie să permită ca euid (egid) să aibă aceeași valoare ca ID-ul efectiv al utilizatorului (grupului) curent, iar unele implementări nu permit acest lucru.

  Diferențe între biblioteca C și nucleu
În Linux, seteuid() și setegid() sunt implementate ca funcții de bibliotecă care apelează, respectiv, setresuid(2) și setresgid(2).

STANDARDE
POSIX.1-2024.

ISTORIC
POSIX.1-2001, 4.3BSD.

CONSULTAȚI ȘI
geteuid(2), setresuid(2), setreuid(2), setuid(2), capabilities(7), credentials(7), user_namespaces(7)

TRADUCERE
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 (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.