Provided by:
manpages-pl-dev_20060617-1_all 
NAZWA
setresuid, setresgid - ustawienie rzeczywistego, efektywnego i
zachowanego ID użytkownika lub grupy
SKŁADNIA
#define _GNU_SOURCE
#include <unistd.h>
int setresuid(uid_t ruid, uid_t euid, uid_t suid);
int setresgid(gid_t rgid, gid_t egid, gid_t sgid);
OPIS
setresuid() ustawia dla bieżącego procesu rzeczywisty i efektywny
identyfikator użytkownika (UID) oraz wartość zachowanego set-user-ID.
Proces nieuprzywilejowany może zmienić rzeczywisty UID, efektywny UID i
zachowany set-user-ID na jeden z: bieżący rzeczywisty UID, bieżący
efektywny UID lub bieżący zachowany UID
Proces uprzywilejowany (pod Linuksem - mający atrybut CAP_SETUID) może
ustawić rzeczywisty UID, efektywny UID i zachowany set-user-ID na
dowolne wartości.
Jeżeli którykolwiek z parametrów jest równy -1, to odpowiadająca mu
wartość nie jest zmieniana.
Niezależnie od zmian rzeczywistego UID, efektywnego UID i zachowanego
set-user-ID, file-system-UID jest zawsze ustawiany na taką samą
wartość, jaką ma (być może nowy) efektywny UID.
Analogicznie, setresgid() ustawia rzeczywisty identyfikator grupy
(GID), efektywny GID i zachowany set-group-ID bieżącego procesu (i
zawsze ustawia file-system-GID na wartość efektywnego GID), z takimi
samymi ograniczeniami dla procesów nieuprzywilejowanych.
WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest
-1 i odpowiednio ustawiane errno.
BŁĘDY
EAGAIN uid nie pasuje do obecnego ID użytkownika, a to wywołanie
pozwoliłoby obejść użytkownikowi limit NPROC.
EPERM Proces wywołujący nie jest procesem uprzywilejowanym (nie ma
atrybutu CAP_SETUID) i próbował ustawić niedozwoloną wartość
któregoś z identyfikatorów.
ZGODNE Z
To wywołanie systemowe jest niestandardowe.
HISTORIA
To wywołanie systemowe pojawiło się po raz pierwszy w HP-UX. Jest
dostępne pod Linuksem od wersji 2.1.44. Obecnie można je znaleźć także
w FreeBSD (dla emulacji programów linuksowych).
UWAGI
Na HP-UX i FreeBSD prototyp funkcji można znaleźć w <unistd.h>.Pod
Liniksem prototyp jest dostarczany przez glibc od wersji 2.3.2, pod
warunkiem, że zdefiniowano _GNU_SOURCE.
ZOBACZ TAKŻE
getresuid(2), getuid(2), setfsuid(2), setfsgid(2), setreuid(2),
setuid(2), capabilities(7)