|
|||||||
Как в Debian Linux установить режим видимости чужих процессов для пользователей?
Время создания: 24.09.2025 12:27
Текстовые метки: debian, linux, astra, ubuntu, установить, переключить, настроить, proc, hidepid, PID, режим, чужой, чужие, другой, других, пользователь, видимость, доступность, процесс, команда, параметры
Раздел: Компьютер - Linux - Дистрибутив Debian
Запись: xintrea/mytetra_syncro/master/base/175870607040fadmeam6/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
По-умолчанию, практически во всех дистрибутивах Linux, пользователи могут видеть процессы других пользователей. По-умолчанию видны не только PID чужого процесса, но и команда, которой этот процесс был запущен. И даже обычный пользователь видит все процессы пользователя root. Но это поведение можно поменять. Для переключения режима видимости чужих процессов, можно от root дать команду: mount -o remount,hidepid=1 /proc или, чтобы режим заданный видимости работал на постоянной основе, можно прописать в /etc/fstab следующую строку: proc /proc proc defaults,hidepid=1 0 0 Данные команды монтируют виртуальную внутрисистемную файловую систему /proc с заданным параметром hidepid. Согласно документации ядра, значения у данного параметра соответсвуют следующему поведению:
Однако в Debian Linux и Ubuntu дела обстоят несколько по-другому. По описанию опции hidepid=1 можно было бы ожидать, что процессы других пользователей будут видны, но их аргументы командной строки (cmdline, environ) будут скрыты. Однако в Debian (и некоторых других дистрибутивах) эффект может отличаться от «формального» описания из-за того, как именно реализованы права доступа в /proc и как работает команда ps. Кратко, как должно быть по документации ядра:
Что происходит в Debian В Debian/Ubuntu команда ps и другие утилиты из procps-ng используют не только /proc/<pid>/cmdline, но и /proc/<pid>/stat, /proc/<pid>/status. При hidepid=1 для чужих процессов доступ к части этих файлов тоже блокируется, из-за чего ps aux выводит только собственные процессы, будто бы стоит hidepid=2. Это связано с тем, что ps для корректного отображения не только командной строки, но и имени команды (COMM) и прочей статистики, должен читать эти файлы. Когда доступ ограничен — ps решает, что процесс «невидим», и отбрасывает его. То есть, в Debian практически нет разницы между настройкой hidepid=1 или 2. Как это исправить Исправить сложно. Если нужен именно вариант «видеть все PID, но без аргументов командной строки», то нужно вместо ps использовать утилиты, которые читают /proc/<pid>/comm вместо /proc/<pid>/stat. Такую утилиту можно написать на Bash. Однако овчинка не стоит выделки, т. к. это не будет работать в новых версиях Debian, в которых сделаны изменения для усиления защиты: просмотр информации о чужих процессах при hidepid=1 запрещен даже для файла /proc/<pid>/comm. То есть, по факту, в Debian hidepid=1 практически эквивалентен hidepid=2. Что можно еще сделать На практике, максимум чего можно добиться - это создать специальную группу пользователей, которым будет разрешен доступ для просмотра информации о чужих процессах. Но режима "видны процессы других пользователей, но без опций командной строки", этим методом не добиться. В начале надо создать группу доступа: sudo groupadd proc Затем надо добавить туда пользователей, которым можно видеть чужие процессы: sudo usermod -aG proc username Дале в /etc/fstab прописывается: proc /proc proc defaults,hidepid=2,gid=proc 0 0 Тогда пользователи в группе proc будут видеть все процессы (как при hidepid=0), остальные пользователи будут видеть только свои (hidepid=2). К сожалению, промежуточного варианта «чужие процессы видны, но аргументы скрыты» в Debian добиться сложно: реализация procps-ng делает безопасность hidepid=1 ближе к hidepid=2, и это поведение глубоко интегрировано в систему. |
|||||||
Так же в этом разделе:
|
|||||||
![]() |
|||||||
|
|||||||
|