мы запускаем hudson, чтобы отслеживать пару заданий оболочки. Проблема в том, что hudson выполняет все задания от имени пользователя hudson.
Это нормально, за исключением некоторых специальных команд, требующих прав суперпользователя, таких как "chown" и "apachectl". У нас есть следующий файл sudoers: (visudo)
Defaults:hudson !requiretty
%hudson ALL = NOPASSWD: /usr/sbin/apachectl, /bin/chown
Но это дает нам следующую ошибку, когда мы хотим вызвать apachectl -k graceful в нашем сценарии оболочки:
sudo: no tty present and no askpass program specified
Кто-нибудь знает, как это решить?
[Перемещено из комментария выше]
Ваш сценарий может находить apachectl
бинарный где-то еще в $PATH
Кроме как /usr/sbin/apachectl
. Это не будет соответствовать вашим существующим sudoers
вход. Если вы вызываете команду с явным путем (т. Е. Используйте /usr/sbin/apachectl
в вашем сценарии, а не просто apachectl
) вы можете убедиться, что используете правильный. В целом это хорошая практика.
Вы должны использовать полный путь (согласно комментарию).
Например. /usr/sbin/apachectl
не просто apachectl
в сценарии!
Это должно решить проблему.