Тут недавно у нас в чатике пролетал способ как скрыть процессы в Linux от других пользователей. Пожалуй этот момент стоит поподробнее просветить и тут. Тема интересная.

К примеру есть многопользовательский сервер. Юзеры коннектятся к нему по ssh. И я не хочу чтобы какой-нибудь там Василий Волоёбович знал, что у меня запущена порнокачалка.

По идее если запустить pstree, ps, htop и др. То мы увидим процессы не только свои, но также системные и пользовательские.

Чтобы скрыть свои процессы от других пользователей, всего лишь нужно перемонтировать /proc с опцией hidepid.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос

Работает только с пользователями, рут будет по-прежнему в курсе запущенной порнокачалки.

Параметр hidepid определяет какую информацию о процессах мы ограничим для пользователей, которые не являются владельцами этих процессов.

Параметры которые можно задать:

hidepid=0 - Включена по умолчанию, все видят всё, полный доступ к /proc/PID/.

hidepid=1 - Разрешает обращаться к информации только о своих процессах. Часть файлов в каталоге /proc/PID/ защищена от любопытных морд.

hidepid=2 - Это тот же самый hidepid=1 + всё в /proc/PID будет невидимо для других пользователей. Граница на замке.

Чтобы убедиться, что ты видишь процессы других, запусти от обычного пользователя например htop. В левой колонке будут имена пользователей, root, грут, пруд, фрукт, daemon, syslog и т.п.

Давай теперь закроем этот «бэкдор».

Запускаем от рута:

mount -o remount,rw,nosuid,nodev,noexec,relatime,hidepid=2 /proc

Теперь снова запускаем от обычного пользователя htop и наблюдаем интересную картину маслом. Портянка из процессов пропала, у меня осталось лишь 2 штуки, bash и htop. Красота!

Естественно после ребута сервера, вся эта красота сгинет. А чтобы этого не произошло, зафигач монтирование /proc в fstab.

Вставляем в /etc/fstab

proc /proc proc defaults,nosuid, nodev, noexec,relatime,hidepid=2 0 0

Вот и всё. Но есть одно НО. Встречаются приложения которые могут отвалиться. Для этого нужно захотфиксить маунт с опцией gid=VALUE.

Значением gid параметра может быть имя группы в системе, членам которой доступ к процессам будет разрешён. И затем маунтить /proc таким образом:

proc /proc proc defaults, hidepid=2, gid=bashdays 0 0

Добавляем пользователя от имени которого будет работать приложение/демон в эту группу и проверяем — если всё сделано верно, то зафакапленное приложение заработает как обычно.

Такие дела. Изучай. На связи!