我正在使用NRPE和一个相当烦人的问题。 我需要将几个临时文件写入用户的主目录,NRPE正在(nagios)下运行。
我检查了Nagios的/ etc / passwd项是否正确指向/ home / nagios,并且将NRPE设置为在Nagios用户下执行。 该服务可靠地尝试写入我的用户文件夹(使用sudo重新启动服务时)或/(重新启动时)。
官方文件没有关于这个问题的任何内容。 我怎样才能做到这一点?
编辑 – 这只发生在通过NRPE执行的项目上。 这不是一个权限问题。
添加一个设置HOMEvariables的小脚本,然后调用预期的可执行文件确实解决了这个问题,但这是一个丑陋的,不可扩展的解决scheme。
SELinux或类似的安全程序最近被添加? 我可以很容易地看到拒绝NRPE的写入权限。
这似乎是我使用的NRPE版本中的一个错误。 作为一种解决方法,我在必要时使用shell脚本来设置HOMEvariables。
我看起来像一个权限问题,你可以尝试sudo su - nagios和touch ~/test
正如你所发现的,运行脚本时,nagios / nrpe没有$ HOME。 事实上,它根本没有任何ENV。
您需要在NRPE运行的任何检查/脚本中使用完整path,或者在脚本中明确设置$ HOME。 (或者只是总是使用/ tmp)
错误仍然存在。 另一个快速解决scheme是将variables放在nrpe.cfgconfiguration文件中的命令定义之前:
command[check_something]=HOME=/home/user /home/user/script.sh