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

NAZWA

       setgid - ustawia identyfikator grupy

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <unistd.h>

       int setgid(gid_t gid);

OPIS

       setgid()  ustawia  efektywny  identyfikator  grupy  procesu  wywołującego.  Jeśli  proces wywołujący jest
       uprzywilejowany  (precyzyjniej:  jeśli  proces  ma  przywilej  CAP_SETGID  w  swojej   przestrzeni   nazw
       użytkownika) ustawiany jest również rzeczywisty GID oraz zapisany set-group-ID.

       W  Linuksie  setgid() jest zaimplementowany tak, jak wersja POSIX, z funkcją _POSIX_SAVED_IDS. Pozwala to
       programom set-group-ID innym niż set-user-ID-root porzucić  wszystkie  swoje  przywileje  grupy,  wykonać
       jakąś nieuprzywilejowaną pracę, a następnie odzyskać pierwotny efektywny identyfikator grupy w bezpieczny
       sposób.

WARTOŚĆ ZWRACANA

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

BŁĘDY

       EINVAL Identyfikator grupy podany w gid nie jest prawidłowy w tej przestrzeni nazw użytkownika.

       EPERM  Proces wywołujący nie jest uprzywilejowany (Linux: nie ma przywileju CAP_SETGID w swej przestrzeni
              nazw użytkownika),  a  gid  nie  pasuje  do  rzeczywistego  identyfikatora  grupy  lub  zapisanego
              set-group-ID procesu wywołującego.

WERSJE

   Różnice biblioteki C/jądra
       Na  poziomie  jądra, identyfikatory użytkownika i grupy są atrybutami przynależnymi wątkowi. Jednak POSIX
       wymaga, aby wszystkie wątki  procesu  dzieliły  te  same  poświadczenia.  Implementacja  wątkowania  NPTL
       obsługuje  wymagania  POSIX za pomocą funkcji opakowujących dla różnych wywołań systemowych zmieniających
       UID-y i GID-y procesów. Te funkcje opakowujące (w tym te dla setgid()) wykorzystują  technikę  opartą  na
       sygnałach aby zapewnić, że gdy jeden wątek zmieni swe poświadczenia, wszystkie inne wątki procesu również
       to uczynią. Więcej szczegółów w podręczniku nptl(7).

STANDARDY

       POSIX.1-2008.

HISTORIA

       POSIX.1-2001, SVr4.

       Pierwotne  linuksowe  wywołania  systemowe  setgid()  obsługiwały  jedynie 16-bitowe identyfikatory grup.
       Następnie, w Linuksie 2.4 dodano setgid32(), obsługujące identyfikatory  32-bitowe.  Funkcja  opakowująca
       setgid() biblioteki glibc obsługuje te warianty pomiędzy wersjami jądra w sposób przezroczysty.

ZOBACZ TAKŻE

       getgid(2), setegid(2), setregid(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.                                        setgid(2)