Скрипт 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, а не обычный текстовый редактор.