使用expect批量修改Linux服务器密码与添加用户
版权申诉
![](https://csdnimg.cn/release/wenkucmsfe/public/img/starY.0159711c.png)
"该文档是关于远程批量修改Linux服务器密码的脚本归类,主要介绍了如何使用expect脚本来实现这一操作。"
在管理大量Linux服务器时,有时需要对所有服务器进行统一的操作,如批量修改密码或创建新用户。在这种情况下,手动逐台操作既耗时又效率低下。文档中提到了一种解决方案,即使用expect脚本,它能够自动化处理与远程服务器的交互过程,大大提高了工作效率。
Expect是一个Tcl扩展,专门设计用于自动化命令行接口的交互。在这个场景下,expect可以模拟人类用户的行为,自动输入密码、响应提示,从而实现批量修改远程Linux服务器的root密码以及创建新用户。
以下是使用expect批量修改密码的基本步骤:
1. 首先,你需要一个包含所有服务器IP地址的列表,如示例中的`iplist`文件。
2. 创建一个shell脚本(如`shell.sh`),这个脚本会读取IP列表并调用expect脚本。shell脚本接受两个参数:IP列表的路径和expect脚本的路径。
3. 在shell脚本中,使用`cat`命令读取IP列表,并通过`while`循环逐个处理每一行(即每个IP地址)。然后调用expect脚本,将当前的IP地址作为参数传递。
4. expect脚本(如`adduser`)接收IP地址作为参数。在这里,设置变量来存储登录用户名、密码、要修改的用户名、新密码、新增用户的用户名和密码。
5. 使用`spawn ssh`启动一个新的SSH连接到指定的IP地址,设置超时时间,并定义命令提示符。
6. 在expect脚本中,通过`send`命令发送登录凭证,例如`send "$loginuser\r"`和`send "$loginpass\r"`,模拟用户登录。
7. 登录成功后,执行相应的命令,如`passwd $passuser`来修改指定用户的密码,或者`useradd -m $newusername`和`passwd $newusername`来创建新用户并设置密码。
8. 完成所有操作后,关闭SSH连接,然后继续处理下一个IP地址,直到列表结束。
通过这种方法,你可以高效地对大批量的Linux服务器进行批量密码修改或用户创建等操作,而无需手动干预。这在系统维护和管理中是非常实用的工具,尤其适用于拥有大量服务器的环境。
1823 浏览量
695 浏览量
2021-11-23 上传
2021-11-05 上传
507 浏览量
2024-09-18 上传
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
ll17770603473
- 粉丝: 0
最新资源
- UABE 2.1d 64bit:Unity资源包编辑与提取工具
- RH64成功编译ffmpeg0.7版本,解决JNI编译难题
- HexBuilder工具:合并十六进制文件并转换为二进制
- 傻瓜式EXCEL财务记账系统教程
- React开发的Traekunst.dk项目概述
- 子域名检测大师:高效采集与暴力枚举解决方案
- Laravel网格查询抽象实现详解
- CKplayer:小巧跨平台网页视频播放器
- SpringBoot实现秒杀功能的简单示例教程
- LabView在WEB开发中的应用:用户事件记录温度报警
- Qt框架下QCamera实现摄像头调用与图像显示
- Mac环境下Sublime Text插件的安装教程
- EFT2.22.1R4中文正式版V3.1发布:绝地反击
- 基于Java技术的网上拍卖商城系统设计与实现
- 42巴黎C++课程完全指南与学习心得
- myBase V7.0.0 Pro Beta-20:升级至HTML格式与丰富插件支持