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.