我正在为munin编写一个插件来监视我们的Ubuntu Linux服务器(位于Amazon EC2上)的某些内容。 该插件需要通过sudo运行程序/usr/sbin/rabbitmqctl 。
我在/etc/sudoers有以下行:
munin ALL = NOPASSWD: /usr/sbin/rabbitmqctl list_queues
正如你所看到的, munin用户(即运行脚本的用户)可以通过sudo执行命令/usr/sbin/rabbitmqctl list_queues而不需要密码。 我已经通过sudo -u munin -s证实了这一点,并运行它。
然而在munin日志( /var/log/munin/munin-node.log )中,我得到了很多这样的插件输出:
2013/06/28-11:35:26 [28107] sudo: no tty present and no askpass program specified
图中没有数据。
在我的/etc/sudoers文件的最后,我有这个,这通常被认为是一个解决scheme:
Defaults !requiretty
但是它不能解决它。 “取消/ etc / sudoers中该行的注释”这个共同的build议或者是因为该文件中没有任何东西。
有没有办法让我的munin插件通过sudo调用某些东西?
更新№1 :这个munin插件是由服务器上的munin-node执行的,这个是作为munin用户运行的,我不能把所有的munin都作为root来运行。
这不是对您的具体查询的答案,但它是解决您的具体问题。
做其他的munin插件,而不是使用sudo ,重写运行特定插件的root 。
更多信息在这里 。
你添加一个这样的部分,
[<plugin name>] user <user> group <group>
到plugin-conf.d目录中的munin-node (通常在/etc/munin )。
几个munin插件已经以root身份运行,所以如果你准备运行munin,这已经是标准的做法。