table of contents
proc(5) | File Formats Manual | proc(5) |
ИМЯ¶
proc - process information, system information, and sysctl pseudo-filesystem
ОПИСАНИЕ¶
Файловая система proc — это псевдо-файловая система, которая предоставляет интерфейс к структурам данных ядра. Обычно, она монтируется в /proc и это выполняется системой автоматически, но также можно монтировать её вручную с помощью команды:
mount -t proc proc /proc
Большинство файлов файловой системы proc доступны только для чтения, но есть и доступные на запись, через которые можно изменять переменные ядра.
Параметры монтирования¶
Файловая система proc поддерживает следующие параметры монтирования:
- hidepid=n (начиная с Linux 3.3)
- Позволяет управлять доступом к информации в каталогах /proc/pid. В аргументе n может указываться одно из следующих значений:
- 0
- Все имеют доступ ко всем каталогам /proc/pid. Обычное поведение, используется по умолчанию, если этот параметр не указан.
- 1
- Пользователи не имеют доступа к файлам и подкаталогам любого каталога /proc/pid кроме их собственных (сами каталоги /proc/pid остаются видимыми). Важные файлы /proc/pid/cmdline и /proc/pid/status теперь защищены от других пользователей. Это делает невозможным увидеть какие программы запустил пользователь (до тех пор, пока сама программа не раскрывает себя своим поведением).
- 2
- Как режим 1, но дополнительно и каталоги /proc/pid, принадлежащие другим пользователям, становятся невидимыми. Это означает, что элементы /proc/pid теперь нельзя использовать для получения PID в системе. Это не скрывает факт того, что процесса с определённым PID не существует (это можно определить по другому, например, командой «kill -0 $PID»), но это скрывает UID и GID процесса, которые можно было определять с помощью stat(2) на каталог /proc/pid. Это сильно усложняет атакующему задачу по сбору информации о выполняющихся процессах (например, определение того, запущены ли некоторые службы с повышенными правами, запустил ли другой пользователь некоторую важную программу, выполняет ли вообще какую-либо программу другой пользователь и так далее).
- gid=gid (начиная с Linux 3.3)
- Задаёт ID группы, члены которой могут просматривать информацию о процессах в обход запрещению hidepid, (т. е. пользователям в этой группе кажется, что /proc смонтирована с hidepid=0). Эту группу нужно использовать вместо помещения непривилегированных пользователем в файл sudoers(5) для тех же целей.
- subset=pid (since Linux 5.8)
- Show only the specified subset of procfs, hiding all top level files and directories in the procfs that are not related to tasks.
Обзор¶
В каталоге /proc существуют следующие общие группы файлов и подкаталогов:
- Подкаталоги /proc/pid
- Каждый из этих подкаталогов включает файлы и подкаталоги, которые содержат информацию о процессе с соответствующим ID процесса.
- В каждом каталоге /proc/pid есть подкаталог task, включающий подкаталоги вида task/tid, которые содержат информацию о каждой нить процесса, где tid — ID нити ядра.
- Подкаталоги /proc/pid видимы при обходе /proc с помощью getdents(2) (и поэтому они видимы программам подобным ls(1), которые используются для просмотра содержимого /proc).
- Подкаталоги /proc/tid
- В каждом из этих подкаталогов содержатся файлы и подкаталоги с информацией о нити с соответствующим ID нити. Содержимое этих каталогов такое же как у соответствующих каталогов /proc/pid/task/tid.
- Подкаталоги /proc/tid не видимы при обходе /proc с помощью getdents(2) (и поэтому они не видимы программам подобным ls(1), которые используются для просмотра содержимого /proc).
- /proc/self
- Когда процесс обращается по этой символьной ссылке, она указывает на каталог /proc/pid самого процесса.
- /proc/thread-self
- Когда нить обращается по этой символьной ссылке, она указывает на каталог /proc/self/task/tid самого процесса.
- /proc/[a-z]*
- Другие файлы и подкаталоги в /proc предоставляют информацию о системе.
All of the above are described in more detail in separate manpages whose names start with proc_.
ПРИМЕЧАНИЯ¶
Many files contain strings (e.g., the environment and command line) that are in the internal format, with subfields terminated by null bytes ('\0'). When inspecting such files, you may find that the results are more readable if you use a command of the following form to display them:
$ cat file | tr '\000' '\n'
СМОТРИТЕ ТАКЖЕ¶
cat(1), dmesg(1), find(1), free(1), htop(1), init(1), ps(1), pstree(1), tr(1), uptime(1), chroot(2), mmap(2), readlink(2), syslog(2), slabinfo(5), sysfs(5), hier(7), namespaces(7), time(7), arp(8), hdparm(8), ifconfig(8), lsmod(8), lspci(8), mount(8), netstat(8), procinfo(8), route(8), sysctl(8)
Файлы исходного кода ядра Linux: Documentation/filesystems/proc.rst, Documentation/admin-guide/sysctl/fs.rst, Documentation/admin-guide/sysctl/kernel.rst, Documentation/admin-guide/sysctl/net.rst и Documentation/admin-guide/sysctl/vm.rst.
ПЕРЕВОД¶
Русский перевод этой страницы руководства разработал 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>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу списка рассылки русских переводчиков.
19 мая 2024 г. | Linux man-pages (unreleased) |