Команда NRPE пропускает команду sudo при вызове с удаленного хоста

Проблема: Сценарий очистки файла tmp может успешно выполняться на клиентской машине nagios. Когда тот же скрипт вызывается из мастера nagios, он выполняется, но пропускает строку sudo в скрипте. Может ли кто-нибудь помочь мне в этом.

nrpe.cfg:

root @ nagislave : / tmp # grep -i usedspace /etc/nagios/nrpe.cfg | grep -v '#'

command[usedspace_bash]=/usr/local/nagios/libexec/tmp_space.sh

Разрешение Sudo:

root @ nagislave : /etc/sudoers.d# cat nagios-test

nagios ALL=(ALL) NOPASSWD:/bin/rm

Скрипт:

root @ nagislave : /etc/sudoers.d# cat / usr /local/nagios/libexec/tmp_space.sh

#!/bin/sh
used_space=`df -h /tmp | grep -v Filesystem | awk '{print $5}' | sed 's/%//g'`

if [ $used_space -le 10 ]
then
   echo "tmp FS OK - $used_space% of disk space used."
elif [ $used_space -gt 11 ]
then
   sudo rm -rf /tmp/*
   d=`df -h /tmp | grep -v Filesystem | awk '{print $5}' | sed 's/%//g'`
   echo "OK - House keeping done on /tmp FS and now $d% of disk space used"
else
   echo "UNKNOWN"
fi
0
задан 13 November 2017 в 14:03
1 ответ

Вы должны разрешить без терминальный доступ в sudo, отключив requiretty для этой команды. tty ( т.е. интерактивное использование) требуется по умолчанию, потому что в противном случае это может помочь увеличить бреши в безопасности. Так что, если вас это устраивает, замените:

nagios ALL=(ALL) NOPASSWD:/bin/rm

на:

Cmnd_Alias        NAGIOSRM = /bin/rm
nagios            ALL=(ALL) NOPASSWD: NAGIOSRM
Defaults!NAGIOSRM !requiretty

Cmnd_Alias ​​не является обязательным, но рекомендуется и становится обязательным, если вам нужны дополнительные параметры. Это позволит nagios запускать только команду rm.

Дополнительные сведения см. В man 5 sudoers .

0
ответ дан 5 December 2019 в 07:08

Теги

Похожие вопросы