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

В разрешении отказано при запуске плагина nagios

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

root@debian:~# cat /usr/lib/nagios/plugins/check_filesys.sh
#!/bin/bash
# Script que checa se file system consegue escrever/ler arquivos
if  touch teste.txt && rm teste.txt; then
    echo OK - Teste OK!
    exit 0
else
    echo CRITICAL - Teste de escrita/leitura falhou!
    exit 2
fi


root@debian:~# ls -l /usr/lib/nagios/plugins/check_filesys.sh
-rwxrwxrwx 1 root root 217 Feb  5 10:40 /usr/lib/nagios/plugins/check_filesys.sh

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

 2016-1-5 13:31:16 ------ debugging
 cmd=[/usr/lib/nagios/plugins/check_filesys.sh]
 output=[touch: cannot touch `teste.txt': Permission denied
 CRITICAL - Teste de escrita/leitura falhou!

Я попытался вставить пользователя nagios в файл / etc / sudoers как:

nagios ALL:NOPASSWD: /bin/bash -c /usr/lib/nagios/plugins/check_filesys.sh *

но проблема не устранена. OBS: Я проверяю localhost.

Вам нужно использовать полный путь для touch / rm, потому что ваш скрипт пытается работать в /, и у Nagios нет разрешения на запись в /.

(Возможно, вы сможете обойтись без использования ~/test.txt если для $ HOME установлено что-то нормальное.)

Вы можете убедиться в этом сами:

# pgrep nagios
556
# ls -ls /proc/556/cwd
0 lrwxrwxrwx 1 root root 0 Feb  5 11:10 /proc/556/cwd -> /

Это указывает на то, что процесс Nagios работает с cwd установлен в /

Ваш плагин nagios будет работать как ваш "nrpe_user", который вы определили в вашем /etc/nagios/nrpe.cfg. Вероятно, это «пользователь nagios или пользователь nrpe».

Если вы обновите свой скрипт, чтобы коснуться '/tmp/teste.txt' (другими словами, коснуться файла в месте с открытыми разрешениями), он должен работать.

Положив nagios в sudoers файл не поможет если вы на самом деле не вызываете sudo. Пытаться

nagios ALL=ALL NOPASSWD: /usr/lib/nagios/plugins/check_filesys.sh

в sudoers, а нагиос вызывают

sudo /usr/lib/nagios/plugins/check_filesys.sh