linux系统批量修改root用户密码

本文发布时间: 2019-Mar-22
脚本目的:批量修改linux系统root用户密码条件:必须是修改的用户是root,因为只有root才有权限使用passwd命令说明:先把IP、用户、密码、端口信息写到old_info文件中,脚本从这个文件读取对应的信息,利用expect免交互登陆系统。将随机生成的8位密码修改为root用户新密码。然后将新密码保存到net_info文件中.[[email protected] test1]# cat old_info# ip user passwd port#------------------------------------------------192.168.1.181 root admini123 22192.168.1.182 root admini123 22[[email protected] test1]# cat change_pass.sh#! /bin/bashold_info=/opt/test1/old_infonew_info=/opt/test1/new_infofor 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` #mkpasswd生成随机密码 echo "$ip $user $new_pass $port" >> $new_infoexpect -c " spawn ssh -p$port [email protected]$ip #spawn执行一个命令 set timeout 2 #设置超时 expect { "(yes/no)" {send "yes ";exp_continue} "password:" {send "$pass ";exp_continue} "[email protected]*" {send "echo '$new_pass' |passwd --stdin $user exit ";exp_continue}}"done结果:参数说明:set:可以设置超时,也可以设置变量timeout:expect超时等待时间,默认10Sspawn:执行一个命令expect "":匹配输出的内容exp_continue:继续执行下面匹配:可以理解为回车awk -v I="$ip":赋值变量expect{...}:输入多行记录


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2019-May-25 12:55pm
栏目列表