procfs
procfs (process filesystem) — виртуальная файловая система (не занимающая места на диске), которая может использоваться для отображения и изменения информации о системе и процессах. Она создаётся ядром и монтируется в /proc.
sysfs является похожей и более новой реализацией, которая всё больше и больше заменяет элементы в procfs.
Установка
Ядро
Активируйте следующие параметры ядра:
File systems --->
Pseudo filesystems --->
<*> /proc file system support
Конфигурация
OpenRC
/proc монтируется сценарием OpenRC /lib/rc/sh/init.sh[1]:
user $
mount | grep proc
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
Сценарий инициализации /etc/init.d/procfs находится на уровне запуска boot:
user $
/sbin/rc-update | grep procfs
procfs | boot
Ограничение доступа к каталогам PID
procfs поддерживает параметр монтирования hidepid
для ограничения доступа к /proc/<pid> другим пользователям. Это механизм укрепления безопасности, делающий более трудным попытку злонамеренным локальным пользователям получить информацию о других пользователях [2].
Значение | Описание |
---|---|
hidepid=0
|
Файлы в каталогах /proc/<pid>/* будут доступны по чтению всем. Это поведение по умолчанию. |
hidepid=1
|
Файлы /proc/<pid> в каталогах видны для всех пользователей, но доступ будет только к тем каталогам /proc/<pid>, владельцами которых они являются. Это защищает файлы типа /proc/<pid>/cmdline, которые могут содержать чувствительную информацию. |
hidepid=2
|
То же самое поведение, что и для hidepid=1 , но каталоги /proc/<pid> для других пользователей скрыты. Так как это скроет всю информацию о процессах для всех пользователей кроме суперпользователя, может быть полезным предоставить доступ для привилегированных пользователей, находящихся в группе wheel.
|
Параметр монтирования hidepid
может быть автоматически сконфигурирован при монтировании /proc/, например:
/etc/fstab
Сокрытие информации о процессах от других пользователей, кроме тех, что находятся в группе wheelproc /proc proc nosuid,nodev,noexec,hidepid=2,gid=wheel 0 0
Использование
См. статью в Википедии для описания предназначения каждого из файлов.
Используйте cat для чтения информации. Например, пользователи могут получить версию о текущем ядре с помощью следующей команды:
user $
cat /proc/version
Используйте echo для установки значений на лету (если это возможно). Например, пользователи могут включить клавиши Magic SysRq с помощью следующей команды:
root #
echo 1 > /proc/sys/kernel.sysrq
sysctl
sysctl — это команда для модификации некоторых параметров ядра на лету. Она является частью sys-process/procps, её файлы находятся в /proc/sys/. Документация об этих файлах содержится в следующих статьях.
sysctl работает с парами ключ — значение. Ключи могут быть сформированы из пути к файлу, у которого удаляется префикс /proc/sys, а косая черта заменяется на точку. Например, /proc/sys/kernel/sysrq становится kernel.sysrq
.
Можно редактировать файлы в /proc так, как это описано выше, однако утилита sysctl может модифицировать информацию в /proc более унифицированным способом:
Чтобы включить клавиши Magic SysRq:
root #
sysctl kernel.sysrq=1
Чтобы отобразить все ключи sysctl и их текущие значения:
root #
sysctl -a
Чтобы сконфигурировать параметры ядра при загрузке системы, добавьте их в конфигурационный файл с расширением .conf в каталоге /etc/sysctl.d/. Рекомендуемым расположением для локальных настроек является /etc/sysctl.d/local.conf. Устаревший файл /etc/sysctl.conf также поддерживается. Чтобы включить клавиши Magic SysRq при загрузке:
/etc/sysctl.d/local.conf
kernel.sysrq=1
См. man-страницы sysctl и sysctl.conf .
OpenRC
Сервис sysctl читает файлы и применяет их во время загрузки. Этот сервис включен по умолчанию.
systemd
Кроме каталога /etc/sysctl.d/, systemd также известно о каталоге /usr/lib/sysctl.d/. Второй каталог предназначен для конфигурационных файлов, устанавливаемых пакетами.
Сервис systemd-sysctl включен по умолчанию.
Смотрите также
- sysfs — виртуальная файловая система (не занимающая места на диске).
- Файловая система proc (Руководство по безопасности)
Ссылки
- ↑ Bug 406263 – Remove the two lines concerning proc and shm since they don't reflect the /etc/fstab file that is default in current state3 installation, Gentoo's Bugzilla Main Page, (Last modified) April 29th, 2012. Retrieved on October 23rd, 2015.
- ↑ Vasiliy Kulikov. procfs: add hidepid= and gid= mount options, Linux kernel source tree, January 10th, 2012. Retrieved on July 31st, 2015.