Provided by: manpages-pl_4.23.1-1_all bug

NAZWA

       /proc/sys/fs/ - zmienne jądra odnoszące się do systemów plików

OPIS

       /proc/sys/fs/
              Katalog zawierający pliki i podkatalogi do zmiennych jądra związanych z systemami plików.

       /proc/sys/fs/aio-max-nr i /proc/sys/fs/aio-nr (od Linuksa 2.6.4)
              aio-nr  jest  sumą  bieżącą liczby zdarzeń określonych przez wywołania io_setup(2), dla wszystkich
              aktualnie aktywnych kontekstów AIO. Jeśli aio-nr osiągnie aio-max-nr, to io_setup(2)  zawiedzie  z
              błędem  EAGAIN.  Zwiększenie aio-max-nr nie powoduje alokacji wstępnej ani zmiany jakichś struktur
              danych jądra.

       /proc/sys/fs/binfmt_misc
              Dokumentacja  plików  z  tego  katalogu  znajduje   się   w   źródłach   jądra   Linux   w   pliku
              Documentation/admin-guide/binfmt-misc.rst (lub Documentation/binfmt_misc.txt w starszych jądrach).

       /proc/sys/fs/dentry-state (od Linuksa 2.2)
              Plik  zawiera  informacje  o  statusie  bufora  katalogu (dcache). Zawiera sześć liczb: nr_dentry,
              nr_unused, age_limit (wiek w sekundach), want_pages (strony żądane przez system) i dwie nieużywane
              wartości.

              •  nr_dentry jest liczbą przydzielonych dentries  (wpisów  dcache).  To  pole  jest  nieużywane  w
                 Linuksie 2.2.

              •  nr_unused jest liczbą nieużywanych dentries.

              •  age_limit  jest wiekiem w sekundach, po którym wpisy dcache mogą być przydzielone ponownie, gdy
                 jest zbyt mało pamięci.

              •  want_pages jest niezerowa, gdy jądro wywołało shrink_dcache_pages(),  ale  dcache  nie  zostały
                 jeszcze przycięte.

       /proc/sys/fs/dir-notify-enable
              Plik  ten  może  służyć  do  wyłączania  lub włączania interfejsu dnotify opisanego w fcntl(2) dla
              całego systemu. Wartość 0 w tym pliku wyłącza interfejs, a wartość 1 go włącza.

       /proc/sys/fs/dquot-max
              Zawiera maksymalną liczbę buforowanych wpisów kwot (przydziałów)  dyskowych.  W  niektórych  (2.4)
              systemach  nie występuje. Gdy liczba wolnych zbuforowanych kwot dyskowych jest bardzo mała, a jest
              przerażająca liczba jednoczesnych użytkowników systemu, może  istnieć  potrzeba  zwiększenia  tego
              ograniczenia.

       /proc/sys/fs/dquot-nr
              Zawiera liczbę przydzielonych wpisów kwot dyskowych oraz liczbę wolnych wpisów kwot dyskowych.

       /proc/sys/fs/epoll/ (od Linuksa 2.6.28)
              Katalog  zawiera  plik  max_user_watches,  którego  można użyć, aby ograniczyć ilość pamięci jądra
              używanej przez interfejs epoll. Więcej szczegółów można znaleźć w epoll(7).

       /proc/sys/fs/file-max
              Zawiera ogólnosystemowe ograniczenie liczby plików otwartych przez  wszystkie  procesy.  Wywołania
              systemowe  które  zawiodą  przy  napotkaniu  tych limitów nie powiodą się z błędem ENFILE. (Zobacz
              także  setrlimit(2),  które  może  służyć  procesom  do  ustawiania  ograniczenia   dla   procesu,
              RLIMIT_NOFILE,  jako  liczby  plików,  które  proces  może  otworzyć).  Gdy  otrzymuje się mnóstwo
              komunikatów w dzienniku jądra o przekroczeniu liczby  uchwytów  plików  (opisów  otwartego  pliku)
              (należy  szukać komunikatów takich jak „VFS: file-max limit <liczba> reached”), to można spróbować
              zwiększyć tę wartość:

                  echo 100000 > /proc/sys/fs/file-max

              Procesy uprzywilejowane (CAP_SYS_ADMIN) mogą przesłonić limit file-max.

       /proc/sys/fs/file-nr
              Jest to plik (tylko do odczytu) zawierający trzy liczby:  liczbę  przydzielonych  uchwytów  plików
              (tzn.  liczbę  opisów  otwartego pliku; zob. open(2)), liczbę wolnych uchwytów plików i maksymalną
              liczbę  uchwytów  plików  (tzn.  tę  samą  wartość  co  w  /proc/sys/fs/file-max).  Jeśli   liczba
              przydzielonych  uchwytów  plików  zbliża  się  do maksimów, należy rozważyć zwiększenie ich. Przed
              Linuksem 2.6 jądro dynamicznie przydzielało uchwyty, lecz nie zwalniało ich.  Wolne  uchwyty  były
              przechowywane  w  liście  do ponownego przydzielenia, wartość „wolne uchwyty plików” wskazywała na
              rozmiar tej listy. Duża liczba wolnych uchwytów plików wskazywała, że  w  przeszłości  był  moment
              dużego  użycia  otwartych  uchwytów  plików.  Od Linuksa 2.6 jądro zwalnia wolne uchwyty plików, a
              wartość „wolne uchwyty plików” zawsze wynosi zero.

       /proc/sys/fs/inode-max (obecny jedynie do Linuksa 2.2)
              Ten plik zawiera maksymalną liczbę i-węzłów w pamięci. Wartość ta powinna być 3–4 razy większa niż
              wartość w file-max, gdyż stdin, stdout i gniazda sieciowe również potrzebują i-węzłów,  aby  można
              było  na  nich  operować.  Gdy  systematycznie brakuje i-węzłów, istnieje potrzeba zwiększenia tej
              wartości.

              Od jądra Linux 2.4 nie występuje statyczny limit liczby i-węzłów, w związku z  czym  usunięto  ten
              plik.

       /proc/sys/fs/inode-nr
              Zawiera dwie pierwsze wartości z inode-state.

       /proc/sys/fs/inode-state
              Plik  zawiera  siedem  liczb:  nr_inodes,  nr_free_inodes,  preshrink i cztery nieużywane wartości
              (wynoszące zawsze zero).

              nr_inodes jest liczbą przydzielonych przez system i-węzłów.  nr_free_inodes  jest  liczbą  wolnych
              i-węzłów.

              preshrink  jest  niezerowe,  gdy  nr_inodes  > inode-max i gdy system musi przyciąć listę i-węzłów
              zamiast przydzielić ich więcej; od Linuksa 2.4 to pole jest  wartością  -  atrapą  (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, których można
              użyć, aby ograniczyć ilość pamięci jądra używanej przez interfejs inotify. Więcej szczegółów można
              znaleźć w inotify(7).

       /proc/sys/fs/lease-break-time
              Określa okres ulgi, przez jaki jądro zapewnia procesowi utrzymanie dzierżawy pliku  (fcntl(2)),  a
              po  którym  wyśle  do  tego  procesu sygnał zawiadamiający go, że inny proces oczekuje na otwarcie
              pliku. Jeśli utrzymujący dzierżawę nie usunie  jej  lub  nie  ograniczy  swoich  praw  do  niej  w
              przeciągu tego czasu, jądro wymusi zerwanie dzierżawy.

       /proc/sys/fs/leases-enable
              Ten plik może służyć do ogólnosystemowego włączania lub wyłączania dzierżaw plików (fcntl(2)). Gdy
              plik ten zawiera wartość 0, dzierżawy są wyłączone. Wartość niezerowa włącza dzierżawy.

       /proc/sys/fs/mount-max (od Linuksa 4.9)
              Wartość  w  tym  pliku  określa  maksymalną liczbę montowań, jakie mogą istnieć w przestrzeni nazw
              montowań. Domyślną wartością 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,  kontrolujące  zasoby  używane  przez
              kolejki komunikatów POSIX. Szczegółowe informacje można znaleźć w mq_overview(7).

       /proc/sys/fs/nr_open (od Linuksa 2.6.25)
              Plik ten określa pułap, do którego można podnieść limit zasobów RLIMIT_NOFILE (zob. getrlimit(2)).
              Pułap  ten  jest wymuszany zarówno na nieuprzywilejowanych i uprzywilejowanych procesach. Domyślną
              wartością w pliku jest 1048576 (przed Linuksem  2.6.25,  pułap  RLIMIT_NOFILE  był  zakodowany  na
              sztywno i wynosił tyle samo).

       /proc/sys/fs/overflowgid and /proc/sys/fs/overflowuid
              Te  pliki  umożliwiają  zmianę  wartości  ustalonego UID-u i GID-u. Wartością domyślną jest 65534.
              Niektóre systemy plików wspierają jedynie 16-bitowe UID-y i GID-y, podczas gdy linuksowe  UID-y  i
              GID-y  są 32-bitowe. Gdy któryś z takich systemów plików jest zamontowany z możliwością zapisu, to
              wszystkie UID-y i GID-y przekraczające 65535 są zastępowane podanymi tu wartościami 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)
              Wartość w tym pliku jest/może być ustawiona na jedną z poniższych:

              0   Zapisywanie do FIFO jest nieograniczone.

              1   Nie  zezwala  na O_CREAT open(2) na potokach FIFO, których wywołujący nie jest właścicielem, w
                  zapisywalnych dla wszystkich katalogach z bitem lepkości, chyba że  właściciel  katalogu  jest
                  też właścicielem FIFO.

              2   Jak  przy  wartości  1, lecz ograniczenie dotyczy również zapisywalnych dla grupy katalogach z
                  bitem lepkości.

              Powyższe zabezpieczenia  mają  pomóc  uniknąć  sytuacji  nieoczekiwanego  zapisu  do  potoku  FIFO
              kontrolowanego przez atakującego, gdy program chciał jedynie utworzyć zwykły plik.

       /proc/sys/fs/protected_hardlinks (od Linuksa 3.6)
              Gdy  w  pliku  zapisana jest wartość 0, to w odniesieniu do tworzenia dowiązań zwykłych (twardych)
              nie wprowadza się żadnych ograniczeń (jest to historyczne  zachowanie  przed  Linuksem  3.6).  Gdy
              wartość  wynosi 1, to dowiązania zwykłe mogą być tworzone do pliku docelowego jedynie wówczas, gdy
              spełniony jest jeden z poniższych warunków:

              •  Proces wywołujący ma przywilej CAP_FOWNER w swojej przestrzeni nazw użytkownika, a UID pliku ma
                 przypisanie w tej przestrzeni nazw.

              •  UID systemu plików dotyczący procesu tworzącego dowiązanie pasują do  właściciela  (UID)  pliku
                 docelowego  (zgodnie  z  opisem  w  podręczniku credentials(7), UID systemu plików procesu jest
                 zwykle taki sam jak jego efektywny UID).

              •  Wszystkie poniższe warunki zostaną spełnione:

                  •  cel jest zwykłym plikiem,

                  •  plik docelowy nie ma ustawionego bitu set-user-ID,

                  •  plik docelowy nie ma ustawionych obu z bitów set-group-ID i bitu wykonywalności dla grupy,

                  •  wywołujący ma uprawnienie do odczytu i zapisu pliku docelowego  (albo  dzięki  uprawnieniom
                     pliku albo ze względu na posiadane przywileje).

              Domyślną  wartością  w  tym  pliku  jest  0. Ustawienie 1 rozwiąże występujące od dawna problemy z
              bezpieczeństwem wykorzystujące  wyścig  między  czasem  sprawdzenia  a  czasem  użycia  dowiązania
              zwykłego,  zwykle spotykanych w katalogach dostępnych do zapisu dla wszystkich (np. /tmp). Częstym
              sposobem wykorzystywania tej wady jest skrzyżowanie ograniczeń w uprawnieniach przy  podążaniu  za
              danym  dowiązaniem  zwykłym  (np.  gdy  proces  root podąża za dowiązaniem stałym utworzonym przez
              innego użytkownika). W systemach bez wydzielonych partycji, rozwiązuje się w  ten  sposób  również
              problem  nieautoryzowanych  użytkowników  „przypinających”  dziurawe  pliki  z  ustawionymi bitami
              set-user-ID i set-group-ID wobec aktualizowanych przez  administratora  a  także  dowiązywaniu  do
              plików specjalnych.

       /proc/sys/fs/protected_regular (od Linuksa 4.19)
              Wartość w tym pliku jest/może być ustawiona na jedną z poniższych:

              0   Zapis do zwykłych plików jest nieograniczony

              1   Nie  zezwala na O_CREAT open(2) na zwykłych plikach, których wywołujący nie jest właścicielem,
                  w zapisywalnych dla wszystkich katalogach z bitem lepkości, chyba że właściciel zwykłego pliku
                  jest też właścicielem FIFO.

              2   Jak przy wartości 1, lecz ograniczenie dotyczy również zapisywalnych dla  grupy  katalogach  z
                  bitem lepkości.

              Intencja  utworzenia powyższych zabezpieczeń jest podobna do protected_fifos, lecz w tym przypadku
              chodzi o uniknięcie zapisu do zwykłego pliku kontrolowanego przez atakującego, gdy program  chciał
              go utworzyć.

       /proc/sys/fs/protected_symlinks (od Linuksa 3.6)
              Gdy  w  pliku  zapisana  jest  wartość 0, to w odniesieniu do tworzenia dowiązań symbolicznych nie
              wprowadza się żadnych ograniczeń (jest to historyczne zachowanie przed Linuksem 3.6). Gdy  wartość
              wynosi  1,  to  dowiązania  symboliczne  mogą  być  tworzone  jedynie gdy spełnione są następujące
              warunki:

              •  UID systemu plików dotyczący procesu podążającego za dowiązaniem pasują  do  właściciela  (UID)
                 dowiązania  symbolicznego  (zgodnie  z  opisem w podręczniku credentials(7), UID systemu plików
                 procesu jest zwykle taki sam jak jego efektywny UID),

              •  dowiązanie nie znajduje się w katalogu dostępnych dla wszystkich do zapisu z bitem lepkości lub

              •  dowiązanie symboliczne i katalog w którym się ono znajduje mają tego samego właściciela (UID)

              Wywołanie  systemowe  które  nie  podąży  za  dowiązaniem  symbolicznym  ze  względu  na  powyższe
              ograniczenia zwróci w errno błąd EACCES.

              Domyślną  wartością  w  tym  pliku  jest  0. Ustawienie 1 rozwiąże występujące od dawna problemy z
              bezpieczeństwem wykorzystujących wyścig między czasem sprawdzenia a czasem użycia przy uzyskiwaniu
              dostępu do dowiązań symbolicznych.

       /proc/sys/fs/suid_dumpable (od Linuksa 2.6.13)
              Wartość w tym pliku jest przypisana do flagi „dumpable” („zrzucalny”)  w  sytuacjach  opisanych  w
              prctl(2).  W  konsekwencji, wartość w tym pliku określa, czy pliki zrzutów pamięci są tworzone dla
              programów mających ustawiony bit set-user-ID albo chronionych  w  jakiś  inny  sposób.  Ustawienie
              „zrzucalności” wpływa również na własność plików w katalogu /proc/pid procesu, jak opisano wyżej.

              Można podać trzy różne wartości liczbowe:

              0 (domyślna)
                     Jest  to  tradycyjne  zachowanie (sprzed Linuksa 2.6.13). Zrzut pamięci nie będzie tworzony
                     dla procesu, który zmienił swoje uprawnienia (wywołując seteuid(2), setgid(2)  lub  podobną
                     funkcję  albo  gdy  program  miał  ustawiony  bit  set-user-ID  lub  set-group-ID) albo gdy
                     uprawnienia nadane plikowi binarnemu programu zabraniają jego odczytywania.

              1 („debug”)
                     Jeżeli jest to możliwe, to wszystkie procesy wykonują zrzut pamięci  (powody,  dla  których
                     proces może mimo wszystko nie zrzucić pamięci, opisano w podręczniku core(5)). Właścicielem
                     pliku  zrzutu  jest  użytkownik, którego uprawnienia do systemu plików ma proces wykonujący
                     zrzut. Nie są stosowane żadne mechanizmy bezpieczeństwa.  Jest  to  przeznaczone  tylko  do
                     celów   debugowania:   tryb   ten   jest   niebezpieczny,   ponieważ  pozwala  użytkownikom
                     nieuprzywilejowanym na sprawdzanie zawartości pamięci procesów uprzywilejowanych.

              2 („suidsafe”)
                     Zrzut pamięci programu, dla którego w normalnej sytuacji taki zrzut nie  zostałby  wykonany
                     (patrz  wyżej  „0”),  może  być  odczytany  tylko  przez  administratora (root). Pozwala to
                     użytkownikowi usunąć plik ze zrzutem,  ale  nie  pozwala  na  jego  odczytanie.  Z  powodów
                     bezpieczeństwa  w  tym trybie pliki zrzutu nie nadpisują istniejących plików. Ten tryb jest
                     odpowiedni, gdy administrator będzie chciał debugować problemy w naturalnym środowisku.

                     Dodatkowo, od Linuksa 3.6, /proc/sys/kernel/core_pattern musi  być  absolutną  ścieżką  lub
                     poleceniem potokowym (zob. core(5)). Do dziennika jądra zapisane zostaną ostrzeżenia, jeśli
                     core_pattern nie będzie się stosowało do tych reguł i nie utworzy się zrzut pamięci.

              Szczegóły  odnośnie  wpływu  ustawienia „zrzucalności” procesu na sprawdzanie trybu dostępu ptrace
              opisano w podręczniku ptrace(2).

       /proc/sys/fs/super-max
              Plik steruje maksymalną liczbą superbloków, a więc i  maksymalną  liczbą  systemów  plików,  które
              jądro może zamontować. Potrzeba zwiększenia wartości super-max występuje tylko wtedy, gdy chce się
              zamontować więcej systemów plików, niż na to pozwala aktualna wartość super-max.

       /proc/sys/fs/super-nr
              Plik zawiera liczbę obecnie zamontowanych systemów plików.

ZOBACZ TAKŻE

       proc(5), proc_sys(5)

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej  strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>,
       Robert Luberda <robert@debian.org> i 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.8                              2 maja 2024 r.                                   proc_sys_fs(5)