Evitar senha de root

0

Eu fiz essa modificação:

vim /etc/sudoers
# User privilege specification
root    ALL=(ALL) NOPASSWD: ALL

Quando eu uso:

sudo service cassandra start 

funciona sem senha. Mas quando eu uso:

script shell
ssh -t root@$machine -x "sshpass -p 'ubuntu' ssh -t ubuntu@$address -o   StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/nul -x 'sudo service cassandra start'"

eu tenho que digitar a senha!

Por favor, tenha uma ideia porque não funcionou com o ssh?

Muito obrigado pela ajuda. Atenciosamente.

    
por researcher 29.04.2015 / 18:16

1 resposta

0

O 'root' no / etc / sudoers deve ser o ID do usuário executando os comandos .... No seu exemplo, isso seria 'ubuntu' eu acredito.

Seu exemplo faz isso:

  1. efetua login em $ machine como root (suponho que você tenha configurado essa máquina para poder fazer logon como root. Se não, você precisa ajustar as configurações de pam.d para permitir logins de raiz via ssh. Isso não tem nada a faça com sudo).
  2. Como root @ # machine, seu comando ssh's para ubuntu @ address e executa o comando 'sudo service cassandra start'.

Parece pelo seu exemplo que você precisa habilitar o sudo para o ubuntu e não o root para poder executar comandos de serviço.

Exemplo:

# User privilege specification
ubuntu    ALL=(root) NOPASSWD: /usr/bin/service cassandra *

EDIT: Eu estou realmente confuso sobre o que você está tentando realizar. Se você está simplesmente tentando ssh para outro servidor e executar esse comando de serviço, tudo o que é necessário é isso em seu script de shell:

Seu comando ficaria assim:

sshpass -p 'ubuntu' ssh -t ubuntu@$address -o   StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/nul -x 'sudo service cassandra start'

Além disso, você ainda precisa adicionar minhas edições ao / etc / sudoers acima para permitir que o 'ubuntu' execute esse comando.

    
por 30.04.2015 / 20:50

Tags