Como executar o comando sudo NOPASSWD em outro servidor via SSH

Como executar o comando sudo NOPASSWD em outro servidor via SSH

Eu li todos os posts relacionados ao assunto. Mas se você puder ver o meu também e dar sugestões.

Estou tentando fazer SSH sem senha e executar um script no servidor remoto. Mas o acesso ao Sudo pede senha. Por favor sugira. Funcionou bem para o caminho local. Mas qualquer comando ou script que exija acesso root falha.

Abaixo está o roteiro:

#!/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

Desde já, obrigado!!

Responder1

Esse problema geralmente é causado pelo arquivo sudoers. Uma coisa a tentar é fazer com que um script execute sh e, em seguida, execute o comando sudo a partir desse prompt sh e veja se uma senha é necessária.

Observe que o sudo tende a lembrar se você autenticou recentemente a senha do mesmo login. Portanto, se o sudo considerar que você está suficientemente autenticado uma vez (talvez você tenha digitado uma senha) e, em seguida, fizer uma alteração em /etc/sudoers e tentar usar o sudo novamente, poderá ser facilmente enganado porque o sudo pode não avisá-lo, 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. Às vezes, vi o sudo funcionar e o su falhar, ou vice-versa. Esse comando requer que ambos funcionem. Em muitos sistemas,

sudo -i ~shuksand/Mib.sh $DATA

provavelmente fará a mesma coisa.

Responder2

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: https://askubuntu.com/questions/147241/execute-sudo-without-password

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

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

informação relacionada