proc_sys_fs(5)

НАИМЕНОВАНИЕ
/proc/sys/fs/ - kernel variables related to filesystems

ОПИСАНИЕ

/proc/sys/fs/
    Подкаталог, содержащий файлы и подкаталоги с переменными ядра, касающиеся файловых систем.

/proc/sys/fs/aio-max-nr и /proc/sys/fs/aio-nr (начиная с Linux 2.6.4)
    aio-nr is the running total of the number of events specified by io_setup(2) calls for all currently active AIO contexts. If aio-nr reaches aio-max-nr, then io_setup(2) will fail with the error EAGAIN. Raising aio-max-nr does not result in the preallocation or resizing of any kernel data structures.

/proc/sys/fs/binfmt_misc
    Документацию по файлам в этом каталоге можно найти в файле исходного кода ядра Linux Documentation/admin-guide/binfmt-misc.rst (в старых ядрах — в Documentation/binfmt_misc.txt).

/proc/sys/fs/dentry-state (начиная с Linux 2.2)
    Файл содержит информацию о состоянии кэша каталогов (dcache). В нём есть шесть чисел, nr_dentry, nr_unused, age_limit (возраст в секундах), want_pages (страниц, запрошенных системой) и два пустых значения.

    •   nr_dentry содержит количество отведённых dentries (элементов dcache). Это поле не используется в Linux 2.2.

    •   nr_unused содержит количество неиспользуемых dentries.

    •   age_limit — это возраст в секундах по истечении которого элементы dcache могут быть отозваны, когда памяти становится мало.

    •   want_pages не равно нулю, если ядро вызвало shrink_dcache_pages(), а dcache ещё не сокращён (pruned).

/proc/sys/fs/dir-notify-enable
    Этот файл может быть использован для включения и выключения интерфейса dnotify, описанного в fcntl(2), во всей системе. Значение 0 в этом файле отключает интерфейс, а значение 1 включает его.

/proc/sys/fs/dquot-max
    Этот файл показывает максимальное количество кэшируемых элементов дисковых квот. В некоторых (2.4) системах его нет. Если число свободных кэшируемых дисковых квот является очень маленьким, а у вас в системе одновременно работает большое количество пользователей, то вам, возможно, захочется увеличить этот лимит.

/proc/sys/fs/dquot-nr
    Этот файл показывает количество выделенных в использование элементов дисковых квот и количество свободных элементов дисковых квот.

/proc/sys/fs/epoll/ (since Linux 2.6.28)
    В этом каталоге содержится файл max_user_watches, который можно использовать для ограничения количества памяти ядра, потребляемой интерфейсом epoll. Подробности смотрите в epoll(7).

/proc/sys/fs/file-max
    This file defines a system-wide limit on the number of open files for all processes. System calls that fail when encountering this limit fail with the error ENFILE. (See also setrlimit(2), which can be used by a process to set the per-process limit, RLIMIT_NOFILE, on the number of files it may open.) If you get lots of error messages in the kernel log about running out of file handles (open file descriptions) (look for "VFS: file-max limit <number> reached"), try increasing this value:

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

    Привилегированный процесс (с CAP_SYS_ADMIN) может изменять ограничение file-max.

/proc/sys/fs/file-nr
    This (read-only) file contains three numbers: the number of allocated file handles (i.e., the number of open file descriptions; see open(2)); the number of free file handles; and the maximum number of file handles (i.e., the same value as /proc/sys/fs/file-max). If the number of allocated file handles is close to the maximum, you should consider increasing the maximum. Before Linux 2.6, the kernel allocated file handles dynamically, but it didn't free them again. Instead the free file handles were kept in a list for reallocation; the "free file handles" value indicates the size of that list. A large number of free file handles indicates that there was a past peak in the usage of open file handles. Since Linux 2.6, the kernel does deallocate freed file handles, and the "free file handles" value is always zero.

/proc/sys/fs/inode-max (только до Linux 2.2)
    This file contains the maximum number of in-memory inodes. This value should be 3–4 times larger than the value in file-max, since stdin, stdout and network sockets also need an inode to handle them. When you regularly run out of inodes, you need to increase this value.

    Начиная с Linux 2.4, больше не существует статического ограничения на количество индексных дескрипторов и этот файл удалён.

/proc/sys/fs/inode-nr
    Этот файл содержит первые два значения из inode-state.

/proc/sys/fs/inode-state
    Этот файл содержит сем чисел: nr_inodes, nr_free_inodes, preshrink и четыре заглушки (всегда равные нулю).

    В nr_inodes содержится количество выделенных системой индексных дескрипторов. В nr_free_inodes содержится количество свободных индексных дескрипторов.

    Значение preshrink не равно нулю, если nr_inodes > inode-max и системе нужно сократить список индексных дескрипторов, а не выделять новые; начиная с Linux 2.4 это значение не используется (всегда равно нулю).

/proc/sys/fs/inotify/ (since Linux 2.6.13)
    Этот каталог содержит файлы max_queued_events, max_user_instances, и max_user_watches, которые можно использовать для ограничения количества памяти ядра, потребляемом интерфейсом inotify. Подробней смотрите в inotify(7).

/proc/sys/fs/lease-break-time
    В этом файле задаётся период, в течении которого, ядро предоставляет процессу возможность удерживать файл (fcntl(2)), по окончании которого оно посылает сигнал процессу, извещая его о том, что другой процесс ожидает открытия этого файла. Если удерживающий файл процесс не удалит или не отменит удержание файла в течении указанного периода, то ядро принудительно снимет удержание.

/proc/sys/fs/leases-enable
    Этот файл можно использовать, чтобы разрешить или запретить в системе возможность удержания файла (fcntl(2)). Если файл содержит 0, удержание запрещено. Если не ноль — разрешено.

/proc/sys/fs/mount-max (начиная с Linux 4.9)
    Значение в этом файле задаёт максимальное количество монтирований, которые могут существовать в пространстве имён монтирования. Значения файла по умолчанию равно 100000.

/proc/sys/fs/mqueue/ (since Linux 2.6.6)
    В этом каталоге содержатся файлы msg_max, msgsize_max и queues_max, которые контролируют ресурсы, используемые очередями сообщений POSIX. Подробней смотрите в mq_overview(7).

/proc/sys/fs/nr_open (начиная с Linux 2.6.25)
    Этот файл налагает потолок на значение, до которого может быть повышен ограничитель ресурса RLIMIT_NOFILE (смотрите getrlimit(2)). Этот потолок применяется к непривилегированным и привилегированным процессам. Значение по умолчанию в этом файле равно 1048576 (до Linux 2.6.25 потолок для RLIMIT_NOFILE был неизменяемым с этим же значением).

/proc/sys/fs/overflowgid и /proc/sys/fs/overflowuid
    Эти файлы позволяют вам изменить значение фиксированных UID и GID. По умолчанию оно равно 65534. Некоторые файловые системы поддерживают только 16-битные UID и GID, в то время как в Linux UID и GID являются 32-битными. Когда монтируется одна из таких файловых систем с правами, позволяющими запись, все UID или GID, которые превышают 65535, транслируются перед записью на диск в значения переполнения.

/proc/sys/fs/pipe-max-size (начиная с Linux 2.6.35)
    Смотрите pipe(7).

/proc/sys/fs/pipe-user-pages-hard (начиная с Linux 4.5)
    Смотрите pipe(7).

/proc/sys/fs/pipe-user-pages-soft (начиная с Linux 4.5)
    Смотрите pipe(7).

/proc/sys/fs/protected_fifos (начиная с Linux 4.19)
    The value in this file is/can be set to one of the following:

    0   Writing to FIFOs is unrestricted.

    1   Don't allow O_CREAT open(2) on FIFOs that the caller doesn't own in world-writable sticky directories, unless the FIFO is owned by the owner of the directory.

    2   As for the value 1, but the restriction also applies to group-writable sticky directories.

    The intent of the above protections is to avoid unintentional writes to an attacker-controlled FIFO when a program expected to create a regular file.

/proc/sys/fs/protected_hardlinks (начиная с Linux 3.6)
    Если значение в файле равно 0, то на создание жёстких ссылок не накладываются ограничения (соответствует поведению до Linux 3.6). Если значение в файле равно 1, то жёсткая ссылка может быть создана, если соблюдается одно из следующих условий:

    •   Вызывающий процесс имеет мандат CAP_FOWNER в своём пользовательском пространстве имён и UID файла отображён в пространстве имён.

    •   UID файловой системы процесса, создающего ссылку, совпадает с владельцем (UID) файла, на который создаётся ссылка (как описано в credentials(7), UID файловой системы процесса обычно совпадает с эффективным UID).

    •   Все следующие условия выполняются:

        •   целевой файл является обычным;

        •   на целевом файле не установлен бит режима set-user-ID;

        •   на целевом файле не установлены биты режима set-group-ID и group-executable; и

        •   вызывающий имеет право на чтение и запись целевого файла (согласно маске прав на файл или из-за имеющихся мандатов).

    Значение по умолчанию в файле равно 0. Установка значения в 1 закрывает долголетний класс проблем с безопасностью, вызванных проверкой времени на основе жёсткой ссылки, состязательностью при использовании времени, наиболее часто встречающейся в каталогах доступным на запись всем, таким как /tmp. Распространённый метод использования этой уязвимости — присвоение прав при переходе по жёсткой ссылке (т.е., процесс суперпользователя переходит по жёсткой ссылке, созданной другим пользователем). Также, в системах без выделенных разделов это останавливает неправомочных пользователей от «закрепления» уязвимых файлов с битами set-user-ID и set-group-ID при выполнении администратором обновления, или компоновки со специальными файлами.

/proc/sys/fs/protected_regular (начиная с Linux 4.19)
    The value in this file is/can be set to one of the following:

    0   Writing to regular files is unrestricted.

    1   Don't allow O_CREAT open(2) on regular files that the caller doesn't own in world-writable sticky directories, unless the regular file is owned by the owner of the directory.

    2   As for the value 1, but the restriction also applies to group-writable sticky directories.

    The intent of the above protections is similar to protected_fifos, but allows an application to avoid writes to an attacker-controlled regular file, where the application expected to create one.

/proc/sys/fs/protected_symlinks (начиная с Linux 3.6)
    Если значение в этом файле равно 0, то на переход по символьным ссылкам никаких ограничений не накладывается (т. е., обычное поведение ядра Linux до версии 3.6). Если значение в файле равно 1, то переход по символьным ссылкам происходит только при следующих условиях:

    •   UID файловой системы процесса, переходящего по ссылке, совпадает с владельцем (UID) символьной ссылки (как описано в credentials(7), UID файловой системы процесса обычно совпадает с эффективным UID);

    •   ссылка не является «прилипшим» (sticky) каталогом, доступным на запись всем; или

    •   символьная ссылка и её родительский каталог имеют одного владельца (UID)

    Системный вызов, который не может перейти по символьной ссылке из-за перечисленных выше ограничений, возвращает ошибку EACCES в errno.

    Значение по умолчанию в файле равно 0. Установка значения в 1 закрывает долголетний класс проблем с безопасностью, вызванных проверкой времени, состязательностью при использовании времени при доступе к символьным ссылкам.

/proc/sys/fs/suid_dumpable (начиная с Linux 2.6.13)
    Значение из этого файла присваивается флагу «возможность создания дампа» процесса в случаях, описанных в prctl(2). Фактически, значение в этом файле определяет будут ли создаваться файлы дампа памяти для файлов с установленным битом set-user-ID или других защищённых/с добавкой (tainted) исполняемых файлов. Настройка «возможность создания дампа» также влияет на владение файлами в каталоге процесса /proc/pid как описано выше.

    Можно указать три разных целых значения:

    0 (default)
        Традиционное поведение ( до Linux 2.6.13). Дамп памяти не создаётся для процесса, у которого изменены учётные данные (вызовом seteuid(2), setgid(2) и подобным или при исполнении программы с установленными битами set-user-ID или set-group-ID) или если для исполняемого файла нет права на чтение.

    1 ("debug")
        Все процессы создают дамп памяти, если это возможно (причины невозможности создания дампа описаны в core(5)). Дамп памяти принадлежит ID пользователя файловой системы выполнявшегося процесса и никаких мер безопасности не предпринимается. Предназначено только для системной отладки: данный режим небезопасен, так как позволяет непривилегированным пользователями просматривать содержимое памяти привилегированных процессов.

    2 ("suidsafe")
        Дамп памяти будет выполняться для любого исполняемого файла, для которого обычно это не происходит (см. «0» ранее) и будет доступен на чтение только суперпользователю. Файл с дампом памяти обычный пользователь может удалять, но не читать. По соображениям безопасности дампы памяти в этом режиме не будут перезаписываться новыми или другими файлами. Этот режим подходит для администраторов, когда администраторы пытаются разобраться с проблемами в обычном окружении.

        Также, начиная с Linux 3.6, значение /proc/sys/kernel/core_pattern должно быть абсолютным путём или командой с каналом, как это описано в core(5). В ядерный журнал будет выдано предупреждение, если значение core_pattern отступает от этих правил, и дамп создан не будет.

    О том, как влияет флаг «возможности создания дампа» процесса на проверку режима доступа ptrace, смотрите в ptrace(2).

/proc/sys/fs/super-max
    Этот файл управляет максимальным значением суперблоков и таким образом максимальным количеством файловых систем, которое может смонтировать ядро. Вам необходимо увеличивать super-max только в том случае, если нужно смонтировать больше файловых систем, чем это позволяет значение в файле super-max.

/proc/sys/fs/super-nr
    Этот файл содержит количество файловых систем, которое смонтировано в данный момент.

СМОТРИТЕ ТАКЖЕ
proc(5), proc_sys(5)

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Alexey, Azamat Hackimov <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Darima Kogan <silverdk99@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).