
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)