Bash & script 'su' dando um erro “standard in must be a tty”

7

Pessoal, estou tendo um problema com um script bash que executa um comando específico como um usuário diferente .

O fundo: rodando em uma caixa Linux (CentOS), o script é bem simples, está iniciando o aplicativo 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}" &

Esta é a versão abreviada do script, quando executado, o script sai com "padrão deve ser um tty" . Alguma idéia do que eu poderia estar fazendo errado? Eu tentei Dr Google e todo o conselho não tem t ajudou até agora.

Outra referência: Bug 'su' do Mandriva Linux

    
por shaond 13.03.2010 / 02:43

1 resposta

11

Em seu arquivo / etc / sudoers, tente comentar a linha que diz "Defaults requiretty". Há implicações de segurança ao fazer isso, portanto, convém adicionar esta linha abaixo:

Defaults:[username] !requiretty

Certifique-se de usar o comando visudo para editar este arquivo, em vez de um editor de texto comum.

    
por 13.03.2010 / 04:41