proc_sys_fs(5) File Formats Manual proc_sys_fs(5) NAZWA /proc/sys/fs/ - zmienne jadra odnoszace sie do systemow plikow OPIS /proc/sys/fs/ Katalog zawierajacy pliki i podkatalogi do zmiennych jadra zwiazanych z systemami plikow. /proc/sys/fs/aio-max-nr /proc/sys/fs/aio-nr (oba od Linuksa 2.6.4) aio-nr jest suma biezaca liczby zdarzen okreslonych przez wywolania io_setup(2), dla wszystkich aktualnie aktywnych kontekstow AIO. Jesli aio-nr osiagnie aio-max-nr, to io_setup(2) zawiedzie z bledem EAGAIN. Zwiekszenie aio-max-nr nie powoduje alokacji wstepnej ani zmiany jakichs struktur danych jadra. /proc/sys/fs/binfmt_misc Dokumentacja plikow z tego katalogu znajduje sie w zrodlach jadra Linux w pliku Documentation/admin-guide/binfmt-misc.rst (lub Documentation/binfmt_misc.txt w starszych jadrach). /proc/sys/fs/dentry-state (od Linuksa 2.2) Plik zawiera informacje o statusie bufora katalogu (dcache). Zawiera szesc liczb: nr_dentry, nr_unused, age_limit (wiek w sekundach), want_pages (strony zadane przez system) i dwie nieuzywane wartosci. o nr_dentry jest liczba przydzielonych dentries (wpisow dcache). To pole jest nieuzywane w Linuksie 2.2. o nr_unused jest liczba nieuzywanych dentries. o age_limit jest wiekiem w sekundach, po ktorym wpisy dcache moga byc przydzielone ponownie, gdy jest zbyt malo pamieci. o want_pages jest niezerowa, gdy jadro wywolalo shrink_dcache_pages(), ale dcache nie zostaly jeszcze przyciete. /proc/sys/fs/dir-notify-enable Plik ten moze sluzyc do wylaczania lub wlaczania interfejsu dnotify opisanego w fcntl(2) dla calego systemu. Wartosc 0 w tym pliku wylacza interfejs, a wartosc 1 go wlacza. /proc/sys/fs/dquot-max Zawiera maksymalna liczbe buforowanych wpisow kwot (przydzialow) dyskowych. W niektorych (2.4) systemach nie wystepuje. Gdy liczba wolnych zbuforowanych kwot dyskowych jest bardzo mala, a jest przerazajaca liczba jednoczesnych uzytkownikow systemu, moze istniec potrzeba zwiekszenia tego ograniczenia. /proc/sys/fs/dquot-nr Zawiera liczbe przydzielonych wpisow kwot dyskowych oraz liczbe wolnych wpisow kwot dyskowych. /proc/sys/fs/epoll/ (od Linuksa 2.6.28) Katalog zawiera plik max_user_watches, ktorego mozna uzyc, aby ograniczyc ilosc pamieci jadra uzywanej przez interfejs epoll. Wiecej szczegolow mozna znalezc w epoll(7). /proc/sys/fs/file-max Zawiera ogolnosystemowe ograniczenie liczby plikow otwartych przez wszystkie procesy. Wywolania systemowe ktore zawioda przy napotkaniu tych limitow nie powioda sie z bledem ENFILE. (Zobacz takze setrlimit(2), ktore moze sluzyc procesom do ustawiania ograniczenia dla procesu, RLIMIT_NOFILE, jako liczby plikow, ktore proces moze otworzyc). Gdy otrzymuje sie mnostwo komunikatow w dzienniku jadra o przekroczeniu liczby uchwytow plikow (opisow otwartego pliku) (nalezy szukac komunikatow takich jak ,,VFS: file-max limit reached"), to mozna sprobowac zwiekszyc te wartosc: echo 100000 > /proc/sys/fs/file-max Procesy uprzywilejowane (CAP_SYS_ADMIN) moga przeslonic limit file-max. /proc/sys/fs/file-nr Jest to plik (tylko do odczytu) zawierajacy trzy liczby: liczbe przydzielonych uchwytow plikow (tzn. liczbe opisow otwartego pliku; zob. open(2)), liczbe wolnych uchwytow plikow i maksymalna liczbe uchwytow plikow (tzn. te sama wartosc co w /proc/sys/fs/file-max). Jesli liczba przydzielonych uchwytow plikow zbliza sie do maksimow, nalezy rozwazyc zwiekszenie ich. Przed Linuksem 2.6 jadro dynamicznie przydzielalo uchwyty, lecz nie zwalnialo ich. Wolne uchwyty byly przechowywane w liscie do ponownego przydzielenia, wartosc ,,wolne uchwyty plikow" wskazywala na rozmiar tej listy. Duza liczba wolnych uchwytow plikow wskazywala, ze w przeszlosci byl moment duzego uzycia otwartych uchwytow plikow. Od Linuksa 2.6 jadro zwalnia wolne uchwyty plikow, a wartosc ,,wolne uchwyty plikow" zawsze wynosi zero. /proc/sys/fs/inode-max (obecny jedynie do Linuksa 2.2) Ten plik zawiera maksymalna liczbe i-wezlow w pamieci. Wartosc ta powinna byc 3-4 razy wieksza niz wartosc w file-max, gdyz stdin, stdout i gniazda sieciowe rowniez potrzebuja i-wezlow, aby mozna bylo na nich operowac. Gdy systematycznie brakuje i-wezlow, istnieje potrzeba zwiekszenia tej wartosci. Od jadra Linux 2.4 nie wystepuje statyczny limit liczby i-wezlow, w zwiazku z czym usunieto ten plik. /proc/sys/fs/inode-nr Zawiera dwie pierwsze wartosci z inode-state. /proc/sys/fs/inode-state Plik zawiera siedem liczb: nr_inodes, nr_free_inodes, preshrink i cztery nieuzywane wartosci (wynoszace zawsze zero). nr_inodes jest liczba przydzielonych przez system i-wezlow. nr_free_inodes jest liczba wolnych i-wezlow. preshrink jest niezerowe, gdy nr_inodes > inode-max i gdy system musi przyciac liste i-wezlow zamiast przydzielic ich wiecej; od Linuksa 2.4 to pole jest wartoscia - atrapa (wynosi zawsze zero). /proc/sys/fs/inotify/ (od Linuksa 2.6.13) Ten katalog zawiera pliki max_queued_events, max_user_instances i max_user_watches, ktorych mozna uzyc, aby ograniczyc ilosc pamieci jadra uzywanej przez interfejs inotify. Wiecej szczegolow mozna znalezc w inotify(7). /proc/sys/fs/lease-break-time Okresla okres ulgi, przez jaki jadro zapewnia procesowi utrzymanie dzierzawy pliku (fcntl(2)), a po ktorym wysle do tego procesu sygnal zawiadamiajacy go, ze inny proces oczekuje na otwarcie pliku. Jesli utrzymujacy dzierzawe nie usunie jej lub nie ograniczy swoich praw do niej w przeciagu tego czasu, jadro wymusi zerwanie dzierzawy. /proc/sys/fs/leases-enable Ten plik moze sluzyc do ogolnosystemowego wlaczania lub wylaczania dzierzaw plikow (fcntl(2)). Gdy plik ten zawiera wartosc 0, dzierzawy sa wylaczone. Wartosc niezerowa wlacza dzierzawy. /proc/sys/fs/mount-max (od Linuksa 4.9) Wartosc w tym pliku okresla maksymalna liczbe montowan, jakie moga istniec w przestrzeni nazw montowan. Domyslna wartoscia w tym pliku jest 100 000. /proc/sys/fs/mqueue/ (od Linuksa 2.6.6) Ten katalog zawiera pliki msg_max, msgsize_max i queues_max, kontrolujace zasoby uzywane przez kolejki komunikatow POSIX. Szczegolowe informacje mozna znalezc w mq_overview(7). /proc/sys/fs/nr_open (od Linuksa 2.6.25) Plik ten okresla pulap, do ktorego mozna podniesc limit zasobow RLIMIT_NOFILE (zob. getrlimit(2)). Pulap ten jest wymuszany zarowno na nieuprzywilejowanych i uprzywilejowanych procesach. Domyslna wartoscia w pliku jest 1048576 (przed Linuksem 2.6.25, pulap RLIMIT_NOFILE byl zakodowany na sztywno i wynosil tyle samo). /proc/sys/fs/overflowgid /proc/sys/fs/overflowuid Te pliki umozliwiaja zmiane wartosci ustalonego UID-u i GID-u. Wartoscia domyslna jest 65534. Niektore systemy plikow wspieraja jedynie 16-bitowe UID-y i GID-y, podczas gdy linuksowe UID-y i GID-y sa 32-bitowe. Gdy ktorys z takich systemow plikow jest zamontowany z mozliwoscia zapisu, to wszystkie UID-y i GID-y przekraczajace 65535 sa zastepowane podanymi tu wartosciami przed zapisem na dysk. /proc/sys/fs/pipe-max-size (od Linuksa 2.6.35) Patrz pipe(7). /proc/sys/fs/pipe-user-pages-hard (od Linuksa 4.5) Patrz pipe(7). /proc/sys/fs/pipe-user-pages-soft (od Linuksa 4.5) Patrz pipe(7). /proc/sys/fs/protected_fifos (od Linuksa 4.19) Wartosc w tym pliku jest/moze byc ustawiona na jedna z ponizszych: 0 Zapisywanie do FIFO jest nieograniczone. 1 Nie zezwala na O_CREAT open(2) na potokach FIFO, ktorych wywolujacy nie jest wlascicielem, w zapisywalnych dla wszystkich katalogach z bitem lepkosci, chyba ze wlasciciel katalogu jest tez wlascicielem FIFO. 2 Jak przy wartosci 1, lecz ograniczenie dotyczy rowniez zapisywalnych dla grupy katalogach z bitem lepkosci. Powyzsze zabezpieczenia maja pomoc uniknac sytuacji nieoczekiwanego zapisu do potoku FIFO kontrolowanego przez atakujacego, gdy program chcial jedynie utworzyc zwykly plik. /proc/sys/fs/protected_hardlinks (od Linuksa 3.6) Gdy w pliku zapisana jest wartosc 0, to w odniesieniu do tworzenia dowiazan zwyklych (twardych) nie wprowadza sie zadnych ograniczen (jest to historyczne zachowanie przed Linuksem 3.6). Gdy wartosc wynosi 1, to dowiazania zwykle moga byc tworzone do pliku docelowego jedynie wowczas, gdy spelniony jest jeden z ponizszych warunkow: o Proces wywolujacy ma przywilej CAP_FOWNER w swojej przestrzeni nazw uzytkownika, a UID pliku ma przypisanie w tej przestrzeni nazw. o UID systemu plikow dotyczacy procesu tworzacego dowiazanie pasuja do wlasciciela (UID) pliku docelowego (zgodnie z opisem w podreczniku credentials(7), UID systemu plikow procesu jest zwykle taki sam jak jego efektywny UID). o Wszystkie ponizsze warunki zostana spelnione: o cel jest zwyklym plikiem, o plik docelowy nie ma ustawionego bitu set-user-ID, o plik docelowy nie ma ustawionych obu z bitow set-group-ID i bitu wykonywalnosci dla grupy, o wywolujacy ma uprawnienie do odczytu i zapisu pliku docelowego (albo dzieki uprawnieniom pliku albo ze wzgledu na posiadane przywileje). Domyslna wartoscia w tym pliku jest 0. Ustawienie 1 rozwiaze wystepujace od dawna problemy z bezpieczenstwem wykorzystujace wyscig miedzy czasem sprawdzenia a czasem uzycia dowiazania zwyklego, zwykle spotykanych w katalogach dostepnych do zapisu dla wszystkich (np. /tmp). Czestym sposobem wykorzystywania tej wady jest skrzyzowanie ograniczen w uprawnieniach przy podazaniu za danym dowiazaniem zwyklym (np. gdy proces root podaza za dowiazaniem stalym utworzonym przez innego uzytkownika). W systemach bez wydzielonych partycji, rozwiazuje sie w ten sposob rowniez problem nieautoryzowanych uzytkownikow ,,przypinajacych" dziurawe pliki z ustawionymi bitami set-user-ID i set-group-ID wobec aktualizowanych przez administratora a takze dowiazywaniu do plikow specjalnych. /proc/sys/fs/protected_regular (od Linuksa 4.19) Wartosc w tym pliku jest/moze byc ustawiona na jedna z ponizszych: 0 Zapis do zwyklych plikow jest nieograniczony 1 Nie zezwala na O_CREAT open(2) na zwyklych plikach, ktorych wywolujacy nie jest wlascicielem, w zapisywalnych dla wszystkich katalogach z bitem lepkosci, chyba ze wlasciciel zwyklego pliku jest tez wlascicielem FIFO. 2 Jak przy wartosci 1, lecz ograniczenie dotyczy rowniez zapisywalnych dla grupy katalogach z bitem lepkosci. Intencja utworzenia powyzszych zabezpieczen jest podobna do protected_fifos, lecz w tym przypadku chodzi o unikniecie zapisu do zwyklego pliku kontrolowanego przez atakujacego, gdy program chcial go utworzyc. /proc/sys/fs/protected_symlinks (od Linuksa 3.6) Gdy w pliku zapisana jest wartosc 0, to w odniesieniu do tworzenia dowiazan symbolicznych nie wprowadza sie zadnych ograniczen (jest to historyczne zachowanie przed Linuksem 3.6). Gdy wartosc wynosi 1, to dowiazania symboliczne moga byc tworzone jedynie gdy spelnione sa nastepujace warunki: o UID systemu plikow dotyczacy procesu podazajacego za dowiazaniem pasuja do wlasciciela (UID) dowiazania symbolicznego (zgodnie z opisem w podreczniku credentials(7), UID systemu plikow procesu jest zwykle taki sam jak jego efektywny UID), o dowiazanie nie znajduje sie w katalogu dostepnych dla wszystkich do zapisu z bitem lepkosci lub o dowiazanie symboliczne i katalog w ktorym sie ono znajduje maja tego samego wlasciciela (UID) Wywolanie systemowe ktore nie podazy za dowiazaniem symbolicznym ze wzgledu na powyzsze ograniczenia zwroci w errno blad EACCES. Domyslna wartoscia w tym pliku jest 0. Ustawienie 1 rozwiaze wystepujace od dawna problemy z bezpieczenstwem wykorzystujacych wyscig miedzy czasem sprawdzenia a czasem uzycia przy uzyskiwaniu dostepu do dowiazan symbolicznych. /proc/sys/fs/suid_dumpable (od Linuksa 2.6.13) Wartosc w tym pliku jest przypisana do flagi ,,dumpable" (,,zrzucalny") w sytuacjach opisanych w prctl(2). W konsekwencji, wartosc w tym pliku okresla, czy pliki zrzutow pamieci sa tworzone dla programow majacych ustawiony bit set-user-ID albo chronionych w jakis inny sposob. Ustawienie ,,zrzucalnosci" wplywa rowniez na wlasnosc plikow w katalogu /proc/pid procesu, jak opisano wyzej. Mozna podac trzy rozne wartosci liczbowe: 0 (domyslna) Jest to tradycyjne zachowanie (sprzed Linuksa 2.6.13). Zrzut pamieci nie bedzie tworzony dla procesu, ktory zmienil swoje uprawnienia (wywolujac seteuid(2), setgid(2) lub podobna funkcje albo gdy program mial ustawiony bit set-user-ID lub set-group-ID) albo gdy uprawnienia nadane plikowi binarnemu programu zabraniaja jego odczytywania. 1 (,,debug") Jezeli jest to mozliwe, to wszystkie procesy wykonuja zrzut pamieci (powody, dla ktorych proces moze mimo wszystko nie zrzucic pamieci, opisano w podreczniku core(5)). Wlascicielem pliku zrzutu jest uzytkownik, ktorego uprawnienia do systemu plikow ma proces wykonujacy zrzut. Nie sa stosowane zadne mechanizmy bezpieczenstwa. Jest to przeznaczone tylko do celow debugowania: tryb ten jest niebezpieczny, poniewaz pozwala uzytkownikom nieuprzywilejowanym na sprawdzanie zawartosci pamieci procesow uprzywilejowanych. 2 (,,suidsafe") Zrzut pamieci programu, dla ktorego w normalnej sytuacji taki zrzut nie zostalby wykonany (patrz wyzej ,,0"), moze byc odczytany tylko przez administratora (root). Pozwala to uzytkownikowi usunac plik ze zrzutem, ale nie pozwala na jego odczytanie. Z powodow bezpieczenstwa w tym trybie pliki zrzutu nie nadpisuja istniejacych plikow. Ten tryb jest odpowiedni, gdy administrator bedzie chcial debugowac problemy w naturalnym srodowisku. Dodatkowo, od Linuksa 3.6, /proc/sys/kernel/core_pattern musi byc absolutna sciezka lub poleceniem potokowym (zob. core(5)). Do dziennika jadra zapisane zostana ostrzezenia, jesli core_pattern nie bedzie sie stosowalo do tych regul i nie utworzy sie zrzut pamieci. Szczegoly odnosnie wplywu ustawienia ,,zrzucalnosci" procesu na sprawdzanie trybu dostepu ptrace opisano w podreczniku ptrace(2). /proc/sys/fs/super-max Plik steruje maksymalna liczba superblokow, a wiec i maksymalna liczba systemow plikow, ktore jadro moze zamontowac. Potrzeba zwiekszenia wartosci super-max wystepuje tylko wtedy, gdy chce sie zamontowac wiecej systemow plikow, niz na to pozwala aktualna wartosc super-max. /proc/sys/fs/super-nr Plik zawiera liczbe obecnie zamontowanych systemow plikow. ZOBACZ TAKZE proc(5), proc_sys(5) TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Przemek Borys , Robert Luberda i 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.17 8 lutego 2026 r. proc_sys_fs(5)