esperar modificação em lote da senha de root

Às vezes, com base na retificação de segurança, precisamos modificar a senha raiz do servidor em lotes. Neste momento, podemos usar esperar para obter a modificação de lote

código mostrado abaixo:

#!/bin/bash
LANG=en
user="lv"

for line in `cat ip.list`;do

ip=`echo $line |awk -F "," '{print $1}'`
common_passwd=`echo $line |awk -F "," '{print $2}'`
new_rootpasswd=`echo $line |awk -F "," '{print $3}'` 

/usr/bin/expect << EOF
set time 30
spawn ssh $user@$ip

expect {
"yes/no" { send "yes\r";exp_continue}
"password:" { send "$common_passwd\r"}
}

expect "]*"
send "sudo passwd root\r"

expect {
"password for lv:" { send "$common_passwd\r";exp_continue}
"New password:" {send "$new_rootpasswd\r";exp_continue}
"Retype new password:" {send "$new_rootpasswd\r"}
}

expect "]*"
send "exit\r"
EOF

done

O conteúdo do texto de ip.list é o seguinte:

192.168.245.129,zhou2,Lg2=0.301!@#,
192.168.245.130,zhou3,e=2.71828!@#,

脚本 执行 结果 如下 如下 :
spawn ssh [email protected]
[email protected]'s password:
Último login: Sun Nov 1 13:29:16 2020 from zhou1
[lv @ zhou2 ~] $ sudo passwd root
[sudo] senha para lv:
Alterando a senha do usuário root.
Nova senha:
Digite novamente a nova senha:
passwd: todos os tokens de autenticação atualizados com sucesso.
[lv @ zhou2 ~] $ spawn ssh [email protected]
[email protected]'s senha:
Último login: Dom 01 de novembro 13:29:35 2020
[lv @ zhou3 ~] $ sudo passwd root
[sudo] senha para lv:
Alterando a senha do usuário root.
Nova senha:
Digite novamente a nova senha:
passwd: todos os tokens de autenticação atualizados com sucesso.

Acho que você gosta

Origin blog.51cto.com/12606610/2545902
Recomendado
Clasificación