Можно ли "скрыть" процесс из списка "ps` или" top " в Linux

во-первых, я предполагаю, что, если это возможно, это нужно будет сделать как root (или как пользователь, который разделяет uid root 0).

как запустить процесс, чтобы он не отображался в ps aux или ps ef или top вывод списка, если команда выполняется не root?

это вообще возможно?

дистрибутивы, которые я обычно запускаю, - это RHEL / CentOS и Ubuntu, поэтому, если есть ответ на дистрибутив, это тоже нормально.

21
задан Simon Sheehan
23.03.2023 22:45 Количество просмотров материала 2906
Распечатать страницу

3 ответа

Ну, у вас есть несколько вариантов здесь. Принимая простой способ было бы поменять ps и топ программ с измененными версиями, которые скрывают то, что вы хотите скрыть.

альтернативой может быть запуск кода, встроенного в существующий процесс, или написание wrapper-скрипта вокруг кода с безобидным именем.

в некоторых версиях PS вы можете изменить его, изменив argv [], но не уверены, работает ли это для top, и не уверены, работает ли он в linux (это в основном конвенция BSD).

все зависит от того, чего именно вы хотите достичь, делая это?

5
отвечен fianchetto 2023-03-25 06:33

в соответствии с патчем ядраhttp://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=0499680a42141d86417a8fbaa8c8db806bea1201, Вы можете использовать опцию hidepid для файловой системы proc:

hidepid=0 (по умолчанию) означает старое поведение-любой может прочитать все читаемые во всем мире файлы/proc/ PID/*.

hidepid=1 означает, что пользователи не могут получить доступ к каталогам /proc//, но собственный. Чувствительные файлы, такие как cmdline, sched*, статус теперь защищен против других пользователей. Как проверить разрешение сделано в proc_pid_permission() и разрешения файлов остаются нетронутыми, программы ожидают конкретных режимы файлов не путаются.

hidepid=2 означает hidepid=1 плюс все /proc/ PID / будут невидимы для других пользователи. Это не означает, что он скрывает, существует ли процесс (это может быть узнал другими способами, например, kill -0 $PID), но скрывает процесс ' euid и egid. Это compicates задачу злоумышленника сбора информации о выполнении процессы, выполняется ли какой-либо демон с повышенными привилегиями, другой пользователь запускает чувствительную программу, независимо от того, программа на всех, и т. д.

gid=XXX определяет группу, которая сможет собирать информацию обо всех процессах (как в режиме hidepid=0). Эту группу следует использовать вместо некорневой пользователь в файле sudoers или что-то еще. Однако ненадежные пользователи (например демоны и др.), которые не должны контролировать задачи в целом система не должна быть добавлена в группу.

вы не сможете контролировать видимость на уровне процесса, однако, вы можете гарантировать, что ваши пользователи могут видеть только свои собственные процессы.

в случае, если у вас версия ядра больше 3.3, вы можете попробовать выполнить следующую команду:

 
mount /proc -o remount,hidepid=2
12
отвечен uha 2023-03-25 08:50

используйте команды F в top и n, например, для настроить, что вы хотите видеть. используйте команду W для записи конфигурация вам нравится~/.toprc -- использовать ? чтобы увидеть главные команды. Это может решить вашу проблему быстро - это сделал для меня. С F я могу добавлять / удалять поля, которые я хочу видеть, в то время как в f можно использовать s чтобы установить сортировку, затем q, чтобы вернуться к отображению. тогда N установить как многие процессы я хочу видеть и W, чтобы сохранить .toprc

-2
отвечен JamesD 2023-03-25 11:07

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх