使用无密码sudo的munin插件的“sudo:no tty present”

我正在为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,这已经是标准的做法。