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



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



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



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



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



Параметр 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



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



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



tags: #linux #utilites



💩 @bashdays