黑帽联盟

标题: expect远程批量修改root密码 [打印本页]

作者: 定位    时间: 2017-1-28 14:55
标题: expect远程批量修改root密码
我们时常会需要要求定期修改一次服务器的root密码,这里是堕胎服务器,一共有11台,我又不想一台一台的去修改,所以单独整了个批量修改密码的脚本.

脚本内容:
cat /root/chpasswd.sh
  1. #!/bin/bash
  2. file="iplist.txt"

  3. for ip in `awk '/^[^#]/{print $1}' $file`; do
  4.     port=`awk -v I=$ip '{if(I==$1)print $2}' $file`
  5.     user=`awk -v I=$ip '{if(I==$1)print $3}' $file`
  6.     pass=`awk -v I=$ip '{if(I==$1)print $4}' $file`
  7.     new=`awk -v I=$ip '{if(I==$1)print $5}' $file`
  8. expect -c "
  9.     spawn ssh -p$port $user@$ip
  10.     set timeout 2
  11.     expect {
  12.         \"(yes/no)\" {send \"yes\r\";exp_continue}
  13.         \"password:\" {send \"$pass\r\";exp_continue}
  14.         \"$user@*\" {send \"echo \'$new\' |passwd --stdin $user\r exit\r\";exp_continue}
  15.         #\"$user@*\"  {send \"df -h\r exit\r\";exp_continue}
  16.     }"
  17. done
复制代码
cat /root/soft_shell/iplist.txt
#     ip     user    port    passwd    newpasswd
#-------------------------------------------------------
192.168.1.62  root    22     123456     456789
192.168.1.63  root    22     123456     456789

ps:
可以看到chpasswd.sh和iplist.txt都在同一文件夹里,只需要把iplist.txt里设置好,就可以批量对服务器进行修改密码了.






欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5