首页 > 其他 > 详细

expect 批量修改root 密码

时间:2020-11-02 08:34:17      阅读:31      评论:0      收藏:0      [点我收藏+]
有时候基于安全整改,我们需要批量修改服务器root密码, 此时可以使用expect 实现批量修改

代码如下:

#!/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

ip.list 文本内容如下:

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

脚本执行结果如下:
spawn ssh lv@192.168.245.129
lv@192.168.245.129‘s password:
Last login: Sun Nov 1 13:29:16 2020 from zhou1
[lv@zhou2 ~]$ sudo passwd root
[sudo] password for lv:
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[lv@zhou2 ~]$ spawn ssh lv@192.168.245.130
lv@192.168.245.130‘s password:
Last login: Sun Nov 1 13:29:35 2020
[lv@zhou3 ~]$ sudo passwd root
[sudo] password for lv:
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

expect 批量修改root 密码

原文:https://blog.51cto.com/12606610/2545902

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!