Скрипт Bash & 'su', выдающий ошибку "стандарт должен быть tty"

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

Предыстория: Скрипт, работающий на Linux-системе (CentOS), довольно простой, он запускает приложение http://hudson-ci.org/.

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". Любые идеи о том, что я могу делать неправильно? Я пробовал доктора Гугла, и все советы пока не помогли.

Другая ссылка: Mandriva Linux 'su' bug

1 ответ

Решение

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

Defaults:[username] !requiretty

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

Другие вопросы по тегам