Provided by: manpages-pl-dev_0.5-1_all bug

NAZWA

       setresuid, setresgid - ustawienie rzeczywistego, efektywnego i zachowanego ID użytkownika lub grupy

SKŁADNIA

       #define _GNU_SOURCE /* Patrz feature_test_macros(7) */
       #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 set-user-ID.

       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 UID użytkownika, a to wywołanie pozwoliłoby obejść użytkownikowi limit
              zasobu RLIMIT_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.

WERSJE

       Opisywane wywołania systemowe są dostępne w Linuksie od wersji 2.1.44.

ZGODNE Z

       Opisywane wywołania systemowe są niestandardowe; występują również na HP-UX i niektórych systemach BSD.

UWAGI

       Na  HP-UX  i  FreeBSD prototyp funkcji można znaleźć w <unistd.h>. Pod Linuksem prototyp jest dostarczany
       przez glibc od wersji 2.3.2.

       Oryginalne, linuksowe wywołania setresuid()  i setresgid()  obsługiwały  tylko  16-bitowe  identyfikatory
       użytkownika  i  grupy.  Następnie  w  Linuksie  2.4  dodano   setresuid32()  i setresgid32(), obsługujące
       32-bitowe identyfikatory. Funkcje opakowujące setresuid()  i setresgid() biblioteki  glibc  obsługują  te
       warianty wywołań w różnych wersjach jądra w sposób przezroczysty dla użytkownika.

ZOBACZ TAKŻE

       getresuid(2),    getuid(2),    setfsgid(2),   setfsuid(2),   setreuid(2),   setuid(2),   capabilities(7),
       credentials(7)

O STRONIE

       Angielska wersja tej strony pochodzi  z  wydania  3.52  projektu  Linux  man-pages.  Opis  projektu  oraz
       informacje dotyczące zgłaszania błędów można znaleźć pod adresem http://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Robert Luberda <robert@debian.org> i
       Michał Kułach <michal.kulach@gmail.com>.

       Polskie  tłumaczenie  jest  częścią  projektu  manpages-pl;  uwagi,  pomoc,  zgłaszanie błędów na stronie
       http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją  3.52 oryginału.

Linux                                              2010-11-22                                       SETRESUID(2)