linux账户密码过期后,借助expect工具批量修改方法

49 阅读1分钟

用途:

用于批量修改密码,基于账户密码过期后繁琐的交互修改过程实现自动修改(因交互次数不同,需自行修改);

环境说明:

1、脚本执行主机上需安装expect包;可通过rpm直接安装;

2、hosts.txt文件为要修改密码的主机ip地址列表。**

[root@localhost tmp]# cat newpass.sh
#!/bin/bash
oldpasswd="oldpasswd"
newpasswd="newpasswd"
for i in `cat /tmp/hosts.txt`
do
/usr/bin/expect << EOF
    spawn /bin/ssh root@$i
    expect {
    "yes/no" { send "yes\r" }
    }
    expect "password:"
    send "$oldpasswd\r"
    expect "Last" 
    send "passwd\r" 
    expect "current"
    send "$oldpasswd\r"
    expect "New"
    send "$newpasswd\r"
    expect "Retype"
    send "$newpasswd\r"   
    send "exit\r"
expect eof
EOF
done