使用expect批量修改Linux服务器密码与添加用户
版权申诉
5星 · 超过95%的资源 174 浏览量
更新于2024-08-16
1
收藏 79KB PDF 举报
"该文档是关于远程批量修改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服务器进行批量密码修改或用户创建等操作,而无需手动干预。这在系统维护和管理中是非常实用的工具,尤其适用于拥有大量服务器的环境。
2015-11-05 上传
2022-05-13 上传
2021-10-12 上传
2021-09-26 上传
2021-09-06 上传
ll17770603473
- 粉丝: 0
- 资源: 6万+
最新资源
- 【ssm管理系统】医疗信息管理系统.zip
- exportific:抽象语法树(AST)简易教程,附加一个简单的源码编辑工具
- ios14.6真机调试包
- 73024452,c语言编写动画屏保源码,c语言
- c_sharp_homework_2
- VulkanEngine:基于VkGuide的项目
- NIM_Android_AVChatKit:网易云信Android音视频组件源码仓库
- drf-problems:它在HTTP API中引入了“问题详细信息”
- atom-bezier-curve-editor
- covid追踪器
- NIM_Android_RtsKit:网易云信Android RTS组件源码仓库
- ggp_mongoose:我的普通玩家!
- principle中拖拽效果的小案例演示.zip
- emial_classification
- RecyclerViewTest:这个项目是网易云课堂课程《 Android控件之RecyclerView》的
- tests:测试多个组件