远程批量修改linux服务器密码的脚本

更新时间:2023-11-22 05:53:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

批量修改远程linux服务器密码

第一种方法 通过expect批量修改linux服务器用户名和密码

公司现在有100多台服务器,需要对服务器进行批量的修改root密码,还要在每台服务器新建一个用户,如果一个一个登到的服务器上进行修改的话,估计一个下午又没有了,首先想到的是我最喜欢的php,其中有个ssh2 模块,不得不承认用php 来处理这样的任务是一件很纠结的事情,然后又想到了用shell,不过发现很快就写不下去了,shell 的交互能力还是不能让人恭维的,最后发现了expect,expect 以其强大的交互能力,无疑是处理这类任务的首选,再加上expect 可以内嵌shell,这使得他变得更强大。 首先要有一个服务器的ip列表,把要处理的ip放在里面

192.168.6.236 192.168.6.235 192.168.6.234 192.168.6.233 192.168.6.232 192.168.6.231 .....

然后是shell脚本 shell.sh

#!/bin/bash

if [ \then

echo \ exit fi

cat $1 | while read line do

[ -z $line ] && continue $2 $line; done

echo -e \

下面是最重要的部分 adduser

#!/usr/bin/expect

#登录的用户名 set loginuser \#密码

set loginpass \

#要修改的用户名

set passuser \#要修改成的新密码

set newpass \

#要添加的新的用户名

set newusername \

#要添加的新用户的密码

set newpasswd \

set ipaddr [lrange $argv 0 0] set timeout 300

set cmd_prompt \

#---------------------------------------------------通过ssh 登录 spawn ssh $loginuser@$ipaddr set timeout 300 expect {

-re \ send \ } -re \ send \

} -re \ exit

} -re \ exit } timeout { exit

} eof { exit } }

expect {

-re \ send \ }

-re $cmd_prompt { send \ } }

#-------------------------------------------修改密码 send \expect {

\ send \ }

\

exit } }

expect {

\ send \ } }

#------------------------------------------------------添加一个新用户并改密码

expect -re $cmd_prompt sleep 1

send \sleep 1

send \expect {

\ send \ }

\ exit

本文来源:https://www.bwwdw.com/article/47rv.html

Top