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

NAZWA
setfsgid - ustawia identyfikator grupy używany przy sprawdzeniach na poziomie systemu plików
BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)
SKŁADNIA
#include <sys/fsuid.h>
[[przestarzałe]] int setfsgid(gid_t fsgid);
OPIS
W Linuksie, proces może posiadać zarówno identyfikator grupy systemu plików jak i efektywny identyfikator
grupy. (Typowo linuksowy) identyfikator grupy systemu plików służy do sprawdzania uprawnień przy dostępie
do obiektów systemu plików, natomiast efektywny identyfikator grupy jest używany do pewnych innych
sprawdzeń uprawnień (zob. credentials(7)).
Zwykle wartość identyfikatora grupy systemu plików dla procesu jest taka sama, jak jego wartość
efektywnego identyfikatora grupy. Jest tak, ponieważ przy każdej zmianie efektywnego identyfikatora grupy
jądro zmienia również identyfikator grupy systemu plików na taki sam, jak nowa wartość efektywnego ID
grupy. Proces może spowodować, że wartość jego ID grupy systemu plików zacznie odbiegać od jego
efektywnego ID grupy korzystając z setfsgid(), w celu zmiany jego ID grupy systemu plików na wartość
podaną w fsgid.
setfsgid() powiedzie się tylko, jeśli wywołujący jest superużytkownikiem lub jeśli fsgid pasuje do
rzeczywistego identyfikatora grupy wywołującego, efektywnego identyfikatora grupy, zapisanego
set-group-ID lub aktualnego identyfikatora użytkownika systemu plików.
WARTOŚĆ ZWRACANA
Zarówno w przypadku powodzenia, jak i przy niepowodzeniu, niniejsze wywołanie zwraca poprzedni
identyfikator grupy systemu plików wywołującego.
STANDARDY
Linux.
HISTORIA
Linux 1.2.
Różnice biblioteki C/jądra
W glibc 2.15 i wcześniejszych, gdy opakowanie dla tego wywołania systemowego ustali, że argument nie może
być przekazany jądru bez obcięcia liczby (ponieważ jądro jest stare i nie obsługuje 32-bitowych
identyfikatorów grup), zwróci -1 i ustawi errno na EINVAL bez próby korzystania z wywołania systemowego.
UWAGI
Koncept identyfikatora grupy systemu plików oraz wywołanie systemowe setfsgid() wymyślono ze względów
historycznych, które nie mają znaczenia na współczesnych jądrach Linux. W podręczniku setfsuid(2) opisano
dlaczego korzystanie z setfsuid(2) i setfsgid() nie jest obecnie potrzebne.
Pierwotne linuksowe wywołania systemowe setfsgid() obsługiwały jedynie 16-bitowe identyfikatory grup.
Następnie, w Linuksie 2.4 dodano setfsgid32(), obsługujące identyfikatory 32-bitowe. Funkcja opakowująca
setfsgid() biblioteki glibc obsługuje te warianty pomiędzy wersjami jądra w sposób przezroczysty.
USTERKI
Przy wystąpieniu błędu, wywołujący nie otrzymuje zwrotnie żadnego wskazania, a fakt, że pomyślne i
niepomyślne wywołanie zwraca tę samą wartość powoduje, że nie da się bezpośrednio ustalić, czy wywołanie
powiodło się, czy też nie. Zamiast tego wywołujący musi posiłkować się sięgnięciem do wartości zwracanej
przez kolejne wywołanie, takie jak setfsgid(-1) (które zawsze zawiedzie), aby ustalić, czy poprzedzające
je wywołanie do setfsgid() zmieniło identyfikator grupy systemu plików. Ostatecznie, EPERM powinno być
zwrócone, gdy wywołanie zawiedzie (z powodu nieposiadania przez wywołującego przywileju CAP_SETGID).
ZOBACZ TAKŻE
kill(2), setfsuid(2), capabilities(7), credentials(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. setfsgid(2)