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

sudo: нет tty и не указана программа askpass (пытается запустить apachectl)

мы запускаем 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 в сценарии!

Это должно решить проблему.