Como executar o comando sudo NOPASSWD em outro servidor via SSH

2

Li todas as postagens relacionadas ao problema. Mas se você pode ver o meu também e dar sugestões.

Estou tentando fazer o SSH sem senha e executar um script no servidor remoto. Mas o acesso do Sudo pede a senha. Por favor sugira. Ele correu bem para o caminho local. Mas qualquer comando ou script requer acesso root falha.

Abaixo está o script:

#!/bin/sh
#set -x
# This Script will search for mib files on Current Server and other Server
# to load mib on current Server.

if [ -f /home/shuksand/Script/MibSearch.conf ]
then
        . /home/shuksand/Script/MibSearch.conf
else
        echo "Failed to find config file. Hence Existing!!!!"
fi

# Check alll MIBS on Server


while read line
do
        ServerName=$line
        echo $line
        scp  /home/shuksand/Input/Mib.txt $ServerName:
        cat /home/shuksand/Input/Mib.txt | while read DATA
        do
                echo $DATA
                ssh -t -t shuksand@${ServerName} 'sudo su - root /bin/sh /home/shuksand/Mib.sh $DATA'
        done
done < /home/shuksand/Input/ServerList.txt

Obrigado antecipadamente !!

    
por Arpita 25.05.2015 / 14:12

2 respostas

0

Eu acho que o que você precisa fazer é editar seu arquivo / etc / sudoers. Adicione algo assim:

<your username> ALL=(ALL) NOPASSWD: ALL

Você pode encontrar mais informações aqui: link

Posso sugerir que você corrija a formatação da sua pergunta? A maior parte do que você escreve (o roteiro) não é relevante para a sua pergunta.

Edit: Se você configurou corretamente o arquivo Mib.sh para ser executável e incluir a linha! # / bin / sh no início do arquivo, então tudo que você precisa executar é sudo su - / home / shuksand / Mib.sh $ DATA '("root" está implícito / default ao fazer su)

    
por 25.05.2015 / 14:25
0

Esse problema geralmente é causado pelo arquivo sudoers. Uma coisa a tentar é fazer um script apenas executar sh, e então executar o comando sudo a partir daquele prompt, e ver se uma senha é necessária.

Observe que o sudo tende a lembrar se você autenticou a senha recentemente a partir do mesmo login. Então, se sudo considerar que você foi autenticado o suficiente uma vez (talvez você digitou uma senha), e então você faz uma mudança para / etc / sudoers, e então tenta sudo novamente, você pode facilmente ser enganado porque o sudo pode não lhe perguntar, porque o sudo pode lembrar que você passou no teste há menos de 5 minutos. Isso é definido pelo valor "timeout" em / etc / sudoers (man sudoers).

sudo su - root /bin/sh /home/shuksand/Mib.sh $DATA

parece que é provavelmente, desnecessariamente, complicado. Eu vi algumas vezes o sudo funcionar e o su fail, ou vice-versa. Esse comando requer que ambos funcionem. Em muitos sistemas,

sudo -i ~shuksand/Mib.sh $DATA

provavelmente fará o mesmo.

    
por 26.05.2015 / 11:05

Tags