Bash и 'su' сценарий, подающий ошибку “стандарт, должны быть tty”

Люди, у меня есть проблема со сценарием удара, который выполняет конкретную команду как другого пользователя.

Фон: Работая на поле Linux (CentOS), сценарий довольно прост, это запускает приложение Гудзона-ci.

declare -r HOME=/home/hudson
declare -r RUNAS=hudson
declare -r HOME=/home/hudson
declare -r LOG=hudson.log
declare -r PID=hudson.pid
declare -r BINARY=hudson.war

su - ${RUNAS} -c "nohup java -jar ${HOME}/${BINARY} >> ${HOME}/${LOG} 2>&1; echo $! > ${HOME}/${PID}" &

Это - сокращенная версия сценария, когда выполнено, выходы сценария со "стандартом в должны быть tty". Какие-либо идеи о том, что я мог делать неправильно? Я попробовал Google Dr, и весь совет не помог к настоящему времени.

Другая ссылка: Mandriva Linux 'su' ошибка

7
задан 15.03.2010, 00:32

1 ответ

В Вашем/etc/sudoers файле попытайтесь комментировать строку, которая говорит "Значения по умолчанию requiretty". Существуют последствия безопасности выполнения так, таким образом, Вы могли бы хотеть вместо этого добавить эту строку ниже:

Defaults:[username] !requiretty

Обязательно используйте команду visudo для редактирования этого файла, а не редактора обычного текста.

12
ответ дан 07.12.2019, 14:44

Теги

Похожие вопросы