Heim  >  Artikel  >  Backend-Entwicklung  >  linux系统批量修改用户密码

linux系统批量修改用户密码

WBOY
WBOYOriginal
2016-07-25 08:46:491460Durchsuche
脚本目的:批量修改linux系统用户密码
条件:必须是修改的用户是root,因为只有root才有权限使用passwd命令
说明:先把IP、用户、密码、端口信息写到old_info文件中,脚本从这个文件读取对应的信息,利用expect免交互登陆系统。将随机生成的8位密码修改为root用户新密码。然后将新密码保存到net_info文件中。
# cat old_info
#     ip     user   passwd    port
#------------------------------------------------
192.168.18.217  root    n8wX3mU%    22
192.168.18.218  root    c87;ZnnL    22
# cat change_pass.sh
#!/bin/bash
OLD_INFO=~/old_info
NEW_INFO=~/new_info
for IP in `awk '/^[^#]/{print $1}' $OLD_INFO`; do
    USER=`awk -v I=$IP'{if(I==$1)print $2}' $OLD_INFO`
    PASS=`awk -v I=$IP'{if(I==$1)print $3}' $OLD_INFO`
    PORT=`awk -v I=$IP'{if(I==$1)print $4}' $OLD_INFO`
    NEW_PASS=`mkpasswd -l 8`
    echo "$IP   $USER  $NEW_PASS       $PORT">> $NEW_INFO
expect -c "
    spawn ssh -p$PORT $USER@$IP
    set timeout 2
    expect {
        \"(yes/no)\"{send \"yes\r\";exp_continue}
        \"password:\"{send \"$PASS\r\";exp_continue}
        \"$USER@*\"{send \"echo \'$NEW_PASS\' |passwd --stdin $USER\rexit\r\";exp_continue}
       #\"$USER@*\"  {send\"df -h\r exit\r\";exp_continue}
    }"
done
# cat new_info
192.168.18.217  root    n8wX3mU%        22
192.168.18.218  root    c87;ZnnL        22
免费领取兄弟连IT教育原创linux运维工程师视频/细说linux教程,详情咨询官网客服:http://www.lampbrother.net/linux/
学PHP、Linux、HTML5、UI、Android等视频教程(课件+笔记+视频)!联系Q2430675018



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn