
使用expect实现切换用户时自动输入密码的功能.txt
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文介绍了如何利用Linux下的expect工具自动化脚本,以实现在需要身份验证的情况下自动输入密码进行用户切换,提高操作效率和便捷性。
昨天一个网友问我如何在Shell里自动完成输入密码的工作。经过研究发现这种交互式任务普通shell无法实现,听说可以使用expect工具解决这个问题,因此我开始学习了expect,并将成果分享给大家。
**应用一:从用户“test”切换到root用户并自动填写root的密码**
步骤如下:
1. 创建一个名为autosu.sh的文件。
2. 在该文件中输入以下内容:
```
#! /usr/bin/expect -f
spawn su -
expect :
send rootpasswd\r
interact
```
注意:执行脚本时,不要使用sh autosu.sh来运行此程序,因为这会提示找不到命令。正确的做法是直接使用./autosu.sh。
**应用二:从普通用户切换到root后执行ls操作并调用aaa.sh**
创建一个expect脚本来实现以下功能:
1. 使用spawn关键字在expect中调用“su -”。
2. 当终端出现“口令:”提示符时,输入密码。例如:
```
expect :
send rootpasswd\r
```
3. 获得root权限后执行ls命令,并回车确认。
4. 执行aaa.sh脚本段落件并等待10秒。
5. 输出执行结果的返回值:
具体代码如下所示:
```
#!/usr/bin/expect -f
spawn su -
expect :
send rootpasswd\r
expect #
send ls\r
expect #
send sh aaa.sh\r
expect #
send echo $?\r
sleep 10
interact
```
全部评论 (0)


