Я пишу плагин для munin, чтобы контролировать что-то на нашем сервере Ubuntu Linux (который находится на Amazon EC2). Плагин требует запуска программы /usr/sbin/rabbitmqctl
через sudo
.
У меня есть следующая строка в /etc/sudoers
:
munin ALL = NOPASSWD: /usr/sbin/rabbitmqctl list_queues
Как видите, munin
пользователю (который является пользователем, запускающим скрипт) разрешено выполнять команду /usr/sbin/rabbitmqctl list_queues
через sudo без пароля. Я подтвердил, что это работает sudo -u munin -s
и запустил его.
Однако в логах мунина (/var/log/munin/munin-node.log
), Я получаю много таких выводов для плагина:
2013/06/28-11:35:26 [28107] sudo: no tty present and no askpass program specified
А данных на графике нет.
В конце моего /etc/sudoers
файл, у меня есть это, что обычно предлагается в качестве решения:
Defaults !requiretty
Однако это не исправляет. Распространенное предложение «раскомментировать эту строку в / etc / sudoers» тоже не работает, потому что в этом файле ничего нет.
Есть ли способ разрешить моему плагину munin вызывать что-либо через sudo
?
Обновление №1: Плагин munin запускается munin-node на сервере, который запускается от имени пользователя munin, я не могу изменить все munin, чтобы все запускалось от имени пользователя root.
Это не ответ на ваш конкретный запрос, но решение вашей конкретной проблемы.
Вместо того, чтобы использовать sudo
, сделайте то, что делают другие плагины munin, переопределите пользователя, который запускает конкретный плагин, чтобы быть root
.
Больше информации Вот.
Вы добавляете такой раздел,
[<plugin name>]
user <user>
group <group>
к munin-node
в plugin-conf.d
каталог (обычно в /etc/munin
).
Некоторые плагины munin уже запускаются от имени пользователя root, поэтому, если вы готовы запустить munin, это уже стандартная практика.