使用expect自动化输入密码切换用户和执行命令
4星 · 超过85%的资源 需积分: 16 58 浏览量
更新于2024-09-15
3
收藏 2KB TXT 举报
"使用expect实现自动化输入密码进行用户切换及执行命令"
expect是一个Tcl语言扩展,用于自动化处理交互式应用程序,特别是在Unix/Linux环境中。它允许脚本模拟用户输入,尤其是涉及密码或需要用户交互的情况。在给定的文件中,有两个应用示例展示了如何使用expect来自动切换用户并执行特定的命令。
应用一:
这个应用演示了如何从普通用户“test”自动切换到root用户,同时自动输入root密码。首先,创建一个名为autosu.sh的脚本,使用`#!/usr/bin/expect -f`作为shebang行来指定使用expect解释器。然后,`spawn su -`启动一个新的进程执行`su -`命令,以切换到root用户。`expect ":"`等待出现密码提示符,通常显示为":"或"口令:"。接着,`send "rootpasswd\r"`发送root密码(假设是"rootpasswd"),并加上`\r`模拟回车键。最后,`interact`允许脚本与新会话进行交互,但在这个例子中,交互操作已完成,所以脚本结束。
应用二:
这个应用扩展了第一个示例,不仅切换到root用户,还执行了"ls"命令以及调用了名为"aaa.sh"的脚本。在相同的脚本结构基础上,`expect "#"`等待root用户的提示符(通常以"#"表示)。`send "ls\r"`执行`ls`命令,`send "sh aaa.sh\r"`则执行脚本"aaa.sh"。之后,`send "echo $?\r"`会打印出上一个命令(这里是"aaa.sh")的退出状态码。`sleep 10`延迟10秒,最后`interact`再次结束脚本。
在运行这些expect脚本时,需要注意的是,由于它们不是bash脚本,因此不能用`sh ***.sh`来执行。正确的做法是通过使脚本具有可执行权限(`chmod +x ***.sh`)然后直接运行,如`./***.sh`。
expect工具在需要自动化处理交互式任务时非常有用,尤其是在需要输入密码或响应特定提示时。这两个示例展示了expect在系统管理自动化中的基本用法,有助于提高效率和减少人为错误。
2020-06-08 上传
2020-09-15 上传
2022-09-20 上传
2020-09-15 上传
2013-06-02 上传
2008-12-12 上传
wujinshan_28
- 粉丝: 7
- 资源: 89
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章