oracular (5) proc_sys_fs.5.gz

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⟩.