脚本目的:批量修改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 \"yes\r\";exp_continue}

\"password:\" {send \"$pass\r\";exp_continue}

\"$user@*\" {send \"echo \'$new_pass\' |passwd --stdin $user\r exit\r\";exp_continue}

}"

done

结果:

参数说明:

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

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

spawn:执行一个命令

expect "":匹配输出的内容

exp_continue:继续执行下面匹配

\r:可以理解为回车

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

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

本文章参考了:

http://lizhenliang.blog.51cto.com/7876557/1674791

linux修改密码点点点root,linux系统批量修改root用户密码相关推荐

  1. Win7如何利用系统放大镜工具更改用户密码

    Win7如何利用系统放大镜工具更改用户密码 工具:win7原始光盘或镜像 放大镜工具magnify.exe cmd.exe 1.         首先,打开计算机电源,到系统登录界面 2.       ...

  2. Windows系统批量修改文件后缀名/扩展名

    查看文件   查看文件是否有扩展名,没有后缀名通过ctrl+E打开计算机,找到"工具"->"文件夹选项"->"查看",取消勾选& ...

  3. 批量重置域用户密码(一)

    说到批量我们想到就是通过vbs.powershell.java等等来实现的方式,既然我们说到批量重置域用户密码,我想大家对这句话应该不陌生,因为网上有很多类似的做法,但是他们的做法跟我所实现的不一样, ...

  4. 魅蓝e android无限重启,魅蓝E怎么Root?魅蓝E一键ROOT教程(系统自带Root功能)

    ROOT大家都不会陌生,一般是指安卓手机获得最高管理权限.那么魅蓝E怎么Root,今天小编主要详细介绍下魅蓝E快速ROOT图文教程.值得一提的是,魅蓝手机ROOT比较简单,因为系统自带了ROOT工具, ...

  5. Windows10系统批量获取所有用户名称、修改所有用户名称

    一.需求说明 在项目开发过程中,需要获取到Windows系统的所有账号名称:需要对Windows账号进行批量修改用以适应业务需要.如下图所示: 二.思路分析 ①可以使用Windows自带的[wmic ...

  6. 安卓上传文件时修改文件名称_使用mmv命令批量修改文件名称

    在 Linux 中使用 mv 命令可以重命名或者移动文件及目录,但是它不支持一次重命名多个文件.本文介绍mmv的使用方式,使用通配符模式移动/复制/追加/链接多个文件 环境 Centos7.7 安装m ...

  7. java 判断域密码到期提醒,Exchange Server 2010下,检测用户密码到期通知提醒脚本...

    ############################################ #Author:wangtingdong #For:检测AD密码过期时间并邮件通知 #Version:1.0 ...

  8. mongoose 批量修改字段_记一次脚本批量修改数据库字符集所埋下的一个坑及解决思路...

    概述 前段时间参考网上教程用脚本批量修改了数据库的字符集,过了一天后业务反馈某个功能用不了,检查发现数据库字符类型的字段的默认值和说明全部为空,用实验测试了一下果然脚本存在一些bug,后续因此加班了一 ...

  9. 批量修改栏目名_Endnote中英文混排批量修改小技巧

    来源:卓琳 赵一鸣 北医三院 临床流行病学和循证医学 如果参考文献量大,涉及多种类型和语言,手工附上参考文献非常低效,还是得借助文献管理软件.由于output style选择的不同,中文参考文献的书写 ...

最新文章

  1. pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法
  2. python设计一个动物类_python面向对象 动物园 例题
  3. ubuntu9.10上安装jdk5
  4. Linux 进程管理器 supervixor
  5. 洛谷P4463:calc(dp、拉格朗日插值)
  6. [网络]------TCP UDP HTTP Socket 区别
  7. android layer阴影,Android Layer-List实现自定义Shape阴影
  8. 滚蛋吧,2020的糟心事儿!2021,先“拼”为敬!
  9. java interface_Java中的接口(interface)
  10. 基于内容的图像检索系统 【多媒体系统导论大作业】
  11. C语言学习——极限值
  12. 众里寻她千百度,那人却在优衣库。
  13. 股票市场量化分析matlab,(特价书)MATLAB金融算法分析实战:基于机器学习的股票量化分析...
  14. java盘古分词_.NET使用Lucene.Net和盘古分词类库实现中文分词
  15. 计算机算法常用术语中英对照
  16. Proguardgui
  17. python之安装第三方库失败的解决方法
  18. kappa值大于多少有多重共线性
  19. 什么是伺服电机的电流环、速度环、位置环和带宽?
  20. [线段树][单调栈] BZOJ 4527 CF 407E: K-D-Sequence

热门文章

  1. 天线为什么会有多次谐振_如果天线不处于谐振状态,辐射效率会受到多大影响?...
  2. projectManager
  3. 京东金融-供应链金融业务介绍
  4. 《国家宝藏》甘肃省博物馆专场:杜淳、黄轩演绎丝路传奇
  5. 云计算:细分之七大类商业模式
  6. 用蓝牙网络设计蓝牙低能耗智能应用程序.第1部分
  7. Android判断网络状态是否断开
  8. 终于有懂哥能把云计算、大数据和人工智能讲得明明白白了
  9. java线程(Thread)的创建与常用方法
  10. 2022学年第一学期郑州大学ACM招新赛选拔赛