expect 交互脚本

这篇博客介绍了如何利用 Expect 脚本自动化设置系统三权,包括root、secadm和auditadm用户的密码更改,实现无人值守的安全级别切换,并在完成后自动重启系统。示例脚本详细展示了 Expect 的使用方法,如 spawn、expect、send 等命令的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用expect编写开机后,一键开启三权的脚本。expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。
具体的使用方法,查看如下文档(expect的用法.md,建议使用Markdown打开)expect的用法.md

expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。

expect自动交互流程:

spawn启动指定进程—expect获取指定关键字—send向指定程序发送指定字符—执行完成退出.

spawn是进入expect环境后才可以执行的expect内部命令。

expect是一种脚本语言,它能够代替我们实现与终端的交互,不必再守候在电脑旁边输入密码,或是根据系统的输出再运行相应的命令。

检测是否安装

ls /usr/bin | grep expect

如何安装

sudo apt-get install expect

yum install -y expect

expect常用命令总结:

spawn               交互程序开始后面跟命令或者指定程序
expect              获取匹配信息匹配成功则执行expect后面的程序动作
send exp_send       用于发送指定的字符串信息
exp_continue        在expect中多次匹配就需要用到
send_user           用来打印输出 相当于shell中的echo
exit                退出expect脚本
eof                 expect执行结束 退出
set                 定义变量
puts                输出变量
set timeout         设置超时时间

示例

测试用例,su到root用户

#!/usr/bin/expect -f

set timeout 10

spawn sudo su - root
expect "*kylin 的密码*"
send "qwe123\r"
expect "#*"
send "ls\r"
expect "#*"
send "df -Th\r"
send "exit\r"
expect eof

一件配置三权脚本V10

#!/usr/bin/expect -f
  
set rootpasswd "qwe123."
set secadmpasswd "qwer1234."
set auditadmpasswd "qwer1234."

# 设置超时时间
set timeout 15
spawn security-switch --set strict

# 捕获到密码
expect "*请输入新密码:*"
send "$rootpasswd\r"

# 请再次输入新密码进行确认
expect "*请再次输入新密码进行确认:*"
send "$rootpasswd\r"

# secadm 用户密码需要手动设置
expect "*请输入新密码:*"
send "$secadmpasswd\r"

# secadm 请再次输入新密码进行确认
expect "*请再次输入新密码进行确认:*"
send "$secadmpasswd\r"

# auditadm 用户密码需要手动设置
expect "*请输入新密码:*"
send "$auditadmpasswd\r"

# auditadm 请再次输入新密码进行确认
expect "*请再次输入新密码进行确认:*"
send "$auditadmpasswd\r"

# 设置完成,等待重启
expect "*系统安全级别切换成功,请立即重启系统生效*"
# 输入密码并回车
#send "reboot\r"
expect eof     



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值