7

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

Предыстория: Скрипт, работающий на Linux-системе (CentOS), довольно прост, он запускает приложение hudson-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". Любые идеи о том, что я могу делать неправильно? Я пробовал доктора Гугла, и все советы пока не помогли.

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

1 ответ1

11

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

Defaults:[username] !requiretty

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .