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

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)