-------- prochapawd.sh ---------
#!/usr/bin/expect set timeout 5 set ipaddress [lindex $argv 0] set username [lindex $argv 1] set newpassword [lindex $argv 2] spawn ssh -l root $ipaddress expect "*#*" {send "hostname\r"} expect "*#*" {send "passwd $username\r"} expect "*assword: " {send "$newpassword\r"} #AIX,this #expect "again:" {send "$newpassword\r"} #Linux,UNIX,this expect "*assword: " {send "$newpassword\r"} expect "*#*" {send "exit\r"} expect eof
-------- prochapawdexecute.sh ---------
#!/bin/bash echo -n "Enter the user whose password you want to change: " read user echo -n "Enter the user's new password: " read newpassword if [ -n "$newpassword" ] && [ -n "$user" ]; then echo "Passwd $user will be executed." else echo "The password you enter is null." exit 1 be for ip in $(cat iplist); do { ssh ${ip} "id $user" if [ $? -eq 0 ]; then /usr/bin/expect prochapawd.sh $ip $user $newpassword else continue be } done exit 0