Люди, у меня есть проблема со сценарием удара, который выполняет конкретную команду как другого пользователя.
Фон: Работая на поле 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' ошибка
В Вашем/etc/sudoers файле попытайтесь комментировать строку, которая говорит "Значения по умолчанию requiretty". Существуют последствия безопасности выполнения так, таким образом, Вы могли бы хотеть вместо этого добавить эту строку ниже:
Defaults:[username] !requiretty
Обязательно используйте команду visudo для редактирования этого файла, а не редактора обычного текста.