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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.