seteuid(2) | System Calls Manual | seteuid(2) |
seteuid, setegid, setegid - stabilește ID-ul efectiv al utilizatorului sau al grupului
Biblioteca C standard (libc, -lc)
#include <unistd.h>
int seteuid(uid_t euid); int setegid(gid_t egid);
seteuid(), setegid():
_POSIX_C_SOURCE >= 200112L || /* glibc <= 2.19: */ _BSD_SOURCE
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”.
Î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 unui răspuns negativ de la seteuid().
POSIX.1-2001, POSIX.1-2008, 4.3BSD.
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.
În Linux, seteuid() și setegid() sunt implementate ca funcții de bibliotecă care apelează, respectiv, setreuid(2) și setregid(2).
geteuid(2), setresuid(2), setreuid(2), setuid(2), capabilities(7), credentials(7), user_namespaces(7)
Traducerea în limba română a acestui manual a fost creată 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.
5 februarie 2023 | Pagini de manual de Linux 6.03 |