我使用的是Debian 7.8(wheezy),以及使用nagios 3.4.1的lighttpd 1.4.31。
当我正常启动lighttpd(以root身份)时,一切都按预期工作:
/etc/init.d/lighttpd start
但是,当nagios启动lighttpd时,一切都会发出404错误,并且没有任何内容logging到/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所定义的/etc/sudoers.d/nagios :
nagios ALL=(root) NOPASSWD: /etc/init.d/lighttpd *
我错过了什么? 直接以root用户身份启动lighttpd和通过sudo以nagios用户身份进行操作有什么区别?
当它启动lighttpd的时候,nagios _actually_using_ sudo?
那么,是运行“sudo /etc/init.d/lighttpd start”,还是运行“/etc/init.d/lighttpd start”。
当不从sudo运行…它不会作为根运行,因此将无法正常工作。
如果有疑问…编辑/etc/init.d/lighttpd脚本,并让它在一开始就打印它的用户,如:
id> /tmp/ligghtpd.start.$$
然后检查/tmp/ligghtpd.start.*文件。