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.40 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¶
Autorem polskiego tłumaczenia niniejszej strony podręcznika man jest
  Robert Luberda <robert@debian.org>.
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.40 oryginału.