Я использую Debian 7.8 (wheezy) и lighttpd 1.4.31 с nagios 3.4.1.
когда я запускаю lighttpd в обычном режиме (как root), все работает как положено:
/etc/init.d/lighttpd start
Однако, когда nagios запускает lighttpd, все выдает ошибку 404 и ничего не регистрируется в /var/log/lighttpd/access.log
или /var/log/lighttpd/error.log
. Я могу имитировать такое же поведение вручную, введя следующую команду от имени пользователя root:
su - nagios -s /usr/bin/sudo /etc/init.d/lighttpd start
Демон nagios имеет доступ к sudo, как определено в /etc/sudoers.d/nagios
:
nagios ALL=(root) NOPASSWD: /etc/init.d/lighttpd *
Что мне не хватает? В чем разница между запуском lighttpd напрямую от имени пользователя root и выполнением этого от имени пользователя nagios через sudo?
Использует ли nagios фактически_ sudo при запуске lighttpd?
Итак, работает ли он «sudo /etc/init.d/lighttpd start» или «/etc/init.d/lighttpd start».
Если он не запущен из sudo ... он не будет работать с правами root, и поэтому не будет работать.
Если сомневаетесь ... отредактируйте скрипт /etc/init.d/lighttpd и позвольте ему вначале распечатать его пользователем примерно так:
id> /tmp/ligghtpd.start.$$
Затем просмотрите файлы /tmp/ligghtpd.start.*.