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

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)