Назад | Перейти на главную страницу

«Sudo: no tty present» для плагина munin с использованием sudo без пароля

Я пишу плагин для 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, это уже стандартная практика.