
He leído todos los post relacionados con el tema. Pero si puedes ver el mío también y darme una sugerencia.
Estoy intentando utilizar SSH sin contraseña y ejecutar un script en un servidor remoto. Pero el acceso a Sudo solicita la contraseña. Por favor recomiende. Funcionó bien para la ruta local. Pero cualquier comando o script que requiera acceso root falla.
A continuación se muestra el guión:
#!/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
¡¡Gracias de antemano!!
Respuesta1
Este problema suele deberse al archivo sudoers. Una cosa que puede intentar es crear un script que simplemente ejecute sh y luego ejecute el comando sudo desde ese indicador sh y vea si se necesita una contraseña.
Tenga en cuenta que sudo tiende a recordar si recientemente autenticó la contraseña desde el mismo inicio de sesión. Entonces, si sudo considera que usted está suficientemente autenticado una vez (quizás escribió una contraseña), y luego realiza un cambio en /etc/sudoers y luego intenta sudo nuevamente, podría ser engañado fácilmente porque es posible que sudo no se lo solicite. porque sudo podría recordar que pasaste la prueba hace menos de 5 minutos. Esto lo establece el valor de "tiempo de espera" en /etc/sudoers (man sudoers).
sudo su - root /bin/sh /home/shuksand/Mib.sh $DATOS
parece que probablemente sea, aunque innecesariamente, complicado. A veces he visto que sudo funciona y su falla, o viceversa. Ese comando requiere que ambos funcionen. En muchos sistemas,
sudo -i ~shuksand/Mib.sh $DATOS
Probablemente hará lo mismo.
Respuesta2
Creo que lo que debes hacer es editar tu archivo /etc/sudoers. Agrega algo como esto:
<your username> ALL=(ALL) NOPASSWD: ALL
Puedes encontrar más información aquí: https://askubuntu.com/questions/147241/execute-sudo-sin-contraseña
¿Puedo sugerirle que arregle el formato de su pregunta? La mayor parte de lo que escribes (el guión) no es realmente relevante para tu pregunta.
Editar: si ha configurado correctamente el archivo Mib.sh para que sea ejecutable e incluye la línea !#/bin/sh al inicio del archivo, entonces todo lo que necesita ejecutar es 'sudo su - /home/shuksand/Mib.sh $DATA' ("raíz" está implícita/predeterminada al hacer su)