setfsgid(2) System Calls Manual setfsgid(2) NAZWA setfsgid - ustawia identyfikator grupy uzywany przy sprawdzeniach na poziomie systemu plikow BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include [[przestarzale]] int setfsgid(gid_t fsgid); OPIS W Linuksie, proces moze posiadac zarowno identyfikator grupy systemu plikow jak i efektywny identyfikator grupy. (Typowo linuksowy) identyfikator grupy systemu plikow sluzy do sprawdzania uprawnien przy dostepie do obiektow systemu plikow, natomiast efektywny identyfikator grupy jest uzywany do pewnych innych sprawdzen uprawnien (zob. credentials(7)). Zwykle wartosc identyfikatora grupy systemu plikow dla procesu jest taka sama, jak jego wartosc efektywnego identyfikatora grupy. Jest tak, poniewaz przy kazdej zmianie efektywnego identyfikatora grupy jadro zmienia rowniez identyfikator grupy systemu plikow na taki sam, jak nowa wartosc efektywnego ID grupy. Proces moze spowodowac, ze wartosc jego ID grupy systemu plikow zacznie odbiegac od jego efektywnego ID grupy korzystajac z setfsgid(), w celu zmiany jego ID grupy systemu plikow na wartosc podana w fsgid. setfsgid() powiedzie sie tylko, jesli wywolujacy jest superuzytkownikiem lub jesli fsgid pasuje do rzeczywistego identyfikatora grupy wywolujacego, efektywnego identyfikatora grupy, zapisanego set-group-ID lub aktualnego identyfikatora uzytkownika systemu plikow. WARTOSC ZWRACANA Zarowno w przypadku powodzenia, jak i przy niepowodzeniu, niniejsze wywolanie zwraca poprzedni identyfikator grupy systemu plikow wywolujacego. STANDARDY Linux. HISTORIA Linux 1.2. Roznice biblioteki C/jadra W glibc 2.15 i wczesniejszych, gdy opakowanie dla tego wywolania systemowego ustali, ze argument nie moze byc przekazany jadru bez obciecia liczby (poniewaz jadro jest stare i nie obsluguje 32-bitowych identyfikatorow grup), zwroci -1 i ustawi errno na EINVAL bez proby korzystania z wywolania systemowego. UWAGI Koncept identyfikatora grupy systemu plikow oraz wywolanie systemowe setfsgid() wymyslono ze wzgledow historycznych, ktore nie maja znaczenia na wspolczesnych jadrach Linux. W podreczniku setfsuid(2) opisano dlaczego korzystanie z setfsuid(2) i setfsgid() nie jest obecnie potrzebne. Pierwotne linuksowe wywolania systemowe setfsgid() obslugiwaly jedynie 16-bitowe identyfikatory grup. Nastepnie, w Linuksie 2.4 dodano setfsgid32(), obslugujace identyfikatory 32-bitowe. Funkcja opakowujaca setfsgid() biblioteki glibc obsluguje te warianty pomiedzy wersjami jadra w sposob przezroczysty. USTERKI Przy wystapieniu bledu, wywolujacy nie otrzymuje zwrotnie zadnego wskazania, a fakt, ze pomyslne i niepomyslne wywolanie zwraca te sama wartosc powoduje, ze nie da sie bezposrednio ustalic, czy wywolanie powiodlo sie, czy tez nie. Zamiast tego wywolujacy musi posilkowac sie siegnieciem do wartosci zwracanej przez kolejne wywolanie, takie jak setfsgid(-1) (ktore zawsze zawiedzie), aby ustalic, czy poprzedzajace je wywolanie do setfsgid() zmienilo identyfikator grupy systemu plikow. Ostatecznie, EPERM powinno byc zwrocone, gdy wywolanie zawiedzie (z powodu nieposiadania przez wywolujacego przywileju CAP_SETGID). ZOBACZ TAKZE kill(2), setfsuid(2), capabilities(7), credentials(7) TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.15 17 maja 2025 r. setfsgid(2)