Provided by: manpages-pl-dev_4.28.0-2_all bug

NAZWA

       seteuid, setegid - ustawia efektywny identyfikator użytkownika lub grupy

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <unistd.h>

       int seteuid(uid_t euid);
       int setegid(gid_t egid);

   Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

       seteuid(), setegid():
           _POSIX_C_SOURCE >= 200112L
               || /* glibc <= 2.19: */ _BSD_SOURCE

OPIS

       seteuid()  ustawia  efektywny  identyfikator użytkownika procesu wywołującego. Nieuprzywilejowane procesy
       mogą ustawiać  tylko  efektywny  identyfikator  użytkownika  na  rzeczywisty  identyfikator  użytkownika,
       efektywny identyfikator użytkownika lub zapisany set-user-ID.

       Powyższy opis stosuje się również do setegid(), po zastąpieniu słowa „użytkownik” – „grupą”.

WARTOŚĆ ZWRACANA

       Po  pomyślnym  zakończeniu  zwracane  jest zero. Po błędzie zwracane jest -1 i ustawiane errno, wskazując
       błąd.

       Uwaga: są przypadki, gdy seteuid() może zawieść nawet  wówczas,  gdy  wywołujący  ma  UID  0.  Pominięcie
       sprawdzenia zwrotu niepowodzenia z seteuid() jest poważnym zagrożeniem bezpieczeństwa.

BŁĘDY

       EINVAL Docelowy  identyfikator  użytkownika  lub  grupy  nie  jest  prawidłowy  w  tej  przestrzeni  nazw
              użytkownika.

       EPERM  W przypadku seteuid(): proces wywołujący nie jest uprzywilejowany (nie ma przywileju CAP_SETUID  w
              swej  przestrzeni  nazw  użytkownika),  a euid nie pasuje do obecnego rzeczywistego identyfikatora
              użytkownika, obecnego efektywnego identyfikatora użytkownika lub obecnego zapisanego set-user-ID.

              W przypadku setegid(): proces wywołujący nie jest uprzywilejowany (nie ma przywileju CAP_SETGID  w
              swej  przestrzeni  nazw  użytkownika),  a egid nie pasuje do obecnego rzeczywistego identyfikatora
              grupy, obecnego efektywnego identyfikatora grupy lub obecnego zapisanego set-group-ID.

WERSJE

       Ustawianie  efektywnego  ID  użytkownika  (grupy)  na  podstawie  zachowanego   set-user-ID   (zapisanego
       set-group-ID)  jest możliwe poczynając od Linuksa 1.1.37 (1.1.38). Na nieznanym systemie należy sprawdzić
       _POSIX_SAVED_IDS.

       W glibc 2.0, seteuid(euid) jest równoważne setreuid(-1, euid), zatem może zmienić zapisany set-user-ID. W
       glibc 2.1 i  późniejszych,  jest  równoważne  setresuid(-1,  euid,  -1),  zatem  nie  zmienia  zapisanego
       set-user-ID.  Analogiczne  uwagi  stosują  się wobec setegid(), z tą różnicą, że zmiana w implementacji z
       setregid(-1, egid) na setresgid(-1, egid, -1) nastąpiła w glibc 2.2 lub 2.3 (w zależności od architektury
       sprzętowej).

       Zgodnie z POSIX.1, seteuid() (setegid()) nie może zezwalać, aby euid (egid)  miał  tę  samą  wartość  jak
       obecny efektywny identyfikator użytkownika (grupy) i niektóre implementacje na to nie zezwalają.

   Różnice biblioteki C/jądra
       W  Linuksie,  seteuid()  i  setegid() zaimplementowano jako funkcje biblioteczne wywołujące, odpowiednio:
       setresuid(2) i setresgid(2).

STANDARDY

       POSIX.1-2008.

HISTORIA

       POSIX.1-2001, 4.3BSD.

ZOBACZ TAKŻE

       geteuid(2), setresuid(2), setreuid(2), setuid(2), capabilities(7), credentials(7), user_namespaces(7)

TŁUMACZENIE

       Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje  o  warunkach  licencji  można  uzyskać
       zapoznając   się   z   GNU General Public License w wersji 3   lub  nowszej.  Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej  manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.9.1                            2 maja 2024 r.                                       seteuid(2)