Senha menos sudo no script

4

Eu tenho acesso sem senha para um servidor. Minha conta de usuário adicionou no arquivo sudoers para uso de NOPASSWD para alguns serviços / daemons em /etc/init.d/.

Eu quero escrever um script para iniciar ou parar um daemon de acordo com alguns resultados de teste. Eu tinha definido um cron para executar este script em um horário específico. Mas ele retorna o erro "sudo: no tty present e nenhum programa askpass especificado".

Eu posso usar o "sudo /etc/init.d/service start / stop sem senha no terminal.Eu não tenho senha de root.

Eu verifiquei novamente o arquivo / etc / sudoers. Não há "requiretty". Estou usando o Ubuntu-10.04, 2.6.32-24-genérico.

A seguir estão as linhas ativas em sudoers:

Defaults        env_reset
root    ALL=(ALL) ALL
bijo ALL=NOPASSWD: /etc/init.d/apache2
%sudo ALL=(ALL) ALL
%admin ALL=(ALL) ALL
    
por Bijo 19.05.2011 / 10:05

4 respostas

7

Se você estiver executando o script como o mesmo usuário que não tem acesso a senha, ele deve funcionar corretamente, eu me certificaria de que o script está sendo executado como o usuário correto, eu também testaria o script chamando manualmente como o usuário certo.

Você também pode precisar verificar se a seguinte linha não existe no arquivo sudoers ou se você tem uma linha adicional que declara que seu usuário não precisa de um TTY

Defaults requiretty

Se essa linha estiver presente, você pode comentá-la (não é uma boa ideia), provavelmente é melhor adicionar o seguinte em

Defaults:<USERNAME> !requiretty

onde USERNAME é seu usuário

    
por 19.05.2011 / 10:18
1

Eu acho que você precisa usar ssh -t

    
por 19.05.2011 / 10:20
1

Essa mensagem de reclamação vem de parte do código que está pedindo a senha, então está reclamando porque sem um tty, não é possível desativar o eco. Você pode provar para si mesmo que está nesse caminho de código definindo a opção visiblepw em sudoers, o que evitará esse aviso e permitirá que você veja o prompt de senha.

Por fim, algo está errado com o controle NOPASSWD: .

Quando várias regras em sudoers correspondem, a correspondência última é usada, não a mais específica. Portanto, o usuário bijo está em% sudo ou% admin; assim, o controle NOPASSWD: não é aplicado.

Seu teste na linha de comando aconteceu antes de você fazer o logout / in depois de se adicionar a um desses grupos?

    
por 20.05.2011 / 10:05
0

Adicione a linha Defaults !requiretty ao final do arquivo. Isso explicitamente desativará o requiretty para tudo.

    
por 23.05.2018 / 23:49