虚位以待(AD)
虚位以待(AD)
首页 > 操作系统 > LINUX > linux系统批量修改root用户密码

linux系统批量修改root用户密码
类别:LINUX   作者:码皇   来源:互联网   点击:

脚本目的:批量修改linux系统root用户密码。条件:必须是修改的用户是root,因为只有root才有权限使用passwd命令。

脚本目的:批量修改linux系统root用户密码

条件:必须是修改的用户是root,因为只有root才有权限使用passwd命令

说明:先把IP、用户、密码、端口信息写到old_info文件中,脚本从这个文件读取对应的信息,利用expect免交互登陆系统。将随机生成的8位密码修改为root用户新密码。然后将新密码保存到net_info文件中.

[root@wuke1 test1]# cat old_info

# ip user passwd port

#------------------------------------------------

192.168.1.181 root admini123 22

192.168.1.182 root admini123 22

[root@wuke1 test1]# cat change_pass.sh

#! /bin/bash

old_info=/opt/test1/old_info

new_info=/opt/test1/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` #mkpasswd生成随机密码

echo "$ip $user $new_pass $port" >> $new_info

expect -c "

spawn ssh -p$port $user@$ip #spawn执行一个命令

set timeout 2 #设置超时

expect {

"(yes/no)" {send "yesr";exp_continue}

"password:" {send "$passr";exp_continue}

"$user@*" {send "echo '$new_pass' |passwd --stdin $userr exitr";exp_continue}

}"

done

结果:

参数说明:

set:可以设置超时,也可以设置变量

timeout:expect超时等待时间,默认10S

spawn:执行一个命令

expect "":匹配输出的内容

exp_continue:继续执行下面匹配

r:可以理解为回车

awk -v I="$ip":赋值变量

expect{...}:输入多行记录

相关热词搜索: