Назад | Перейти на главную страницу

Доступ к / proc / $ pid / exe как обычный пользователь

Я разрабатываю собственный плагин Nagios для отслеживания абсолютного пути нескольких запущенных процессов.

Как пользователь root я всегда использовал команду ls -l / proc / $ pid / exe, чтобы найти путь, но когда я заставляю Nagios запустить эту команду (как пользователь nagios), у него нет разрешения на доступ к файлу в / proc /.

В качестве обходного пути я предоставил sudo доступ к пользователю nagios для запуска команды pwdx, и, похоже, это работает нормально, но на всех наших серверах это сложно. Без этого доступа sudo плагин не работает.

Мне было интересно, есть ли более чистый способ сделать это? Мне в основном нужен способ предоставить пользователю nagios доступ для чтения ко всему в / proc.

В итоге мы продолжили использовать pwdx с доступом sudo, поскольку другие варианты были более или менее «сложными», как этот.

Как насчет комбинации с «настройкой sudo на центральном сервере nagios» и «авторизацией закрытого ключа»?

Предполагая, что вы обращаетесь к своему целевому серверу по ssh,

  1. Установите доступ sudo с параметром NO Passwd для пользователя nagios пользователю nagios на вашем центральном сервере nagios

  2. Сгенерируйте закрытый и открытый ключ от имени пользователя root и скопируйте ключ pub на целевой сервер.

СДЕЛАТЬ ниже в корневом пользователе

ssh-key-gen -t dsa -b 1024 ssh-copy-id -i [путь к вашему файлу .pub] root @ [целевой сервер]

  1. Выполните chec_by_ssh с помощью sudo. sudo [путь-к-nagiosplugin] / check_by_ssh -l root -C "ls -l / proc / [pid] / exe"

Ниже приведен пример результата.

[плагины nagios @ dev] $ sudo ./check_by_ssh -H localhost -l root "ls -l / proc / 2027 / exe"; эхо $? lrwxrwxrwx. 1 root root 0 30 марта, 19:29 / proc / 2027 / exe -> / usr / libexec / postfix / master 0