Live in your World. Die in Mine.

expect

Cambio masivo de contraseñas con expect

by Neoyagami on Mar.25, 2010, under expect, linux, scripting

En el mundo del encargado de servidores linux, a más de uno le ocurrio que debio cambiar la contraseña de acceso de mas de un servidor (pongamos unos 100 o 300) a mi en lo personal no, pero a un amigo si (mi amigo Sendoh) bueno, el tema es que le dije “mira creo que con expect puedo hacer algo para ti” y en un rato logre hacer esto
#!/usr/bin/expect -f
set ip [lindex $argv 0]

spawn ssh root@$ip
expect "connecting"
send "yes\r"

expect "password:"
send "password_antigua\r"
expect "\@"
send "ls\r"
send "echo \"password_nueva\" | passwd root --stdin\r"
expect "all authentication tokens updated successfully"

expect eof
Lo crean con un nombre, ej. CambiaPassword.expect y le dan permisos de ejecución (chmod u+x CambiaPassword.expect)
este script necesita que borren el archivo ~/.ssh/known_hosts o lo vacíen ya que contestara “yes” cuando ssh pregunte “Are you sure you want to continue connecting (yes/no)?” y eso solo pasa si nunca se han conectado por ssh o si en su archivo ~/.ssh/known_hosts no esta o no hay nada.

Para finalizar si son buenos muchachos y dejan un archivo de texto con la lista de ips de servidores solo les falta hacer un
cat archivoconips.txt | xargs CambiaPassword.expect

Recuerden cambiar password_antigua y password_nueva para que se ajuste a sus necesidades.

Leave a Comment more...

¿Buscando algo?

Use el cuadro a continuación para buscar:

¿Aún no encuentras lo que buscas? ¡deja un comentario en algun post y vere!