设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
[请教]用expect验证口令并实现循环
返回列表
查看:
1423
|
回复:
2
[请教]用expect验证口令并实现循环
[复制链接]
linuxjerry
linuxjerry
当前离线
积分
304
IP卡
狗仔卡
发表于 2004-8-4 01:20:01
|
显示全部楼层
|
阅读模式
有一个口令验证程序要在root权限下进行,我用expect实现,运行结果如下:
[wang@J wang]$ myexpect
spawn su -c xrgsu
Password: 123456
XRGSupplicant 1.0.1
RuiJie Network CopyRight 2004
Please input your user name:myid
Please input your password:
Use DHCP,1-Use,0-UnUse(Default: 0):
Use default auth parameter,0-Use 1-UnUse(Default: 0):
Searching server...
Connecting server...
Authenticating...
Authenticate SUCCESSFULLY!
Please input 'unauth' to LogOff:
原码myexpect.sh:如下:
#! /usr/bin/expect
#用su身份运行命令xrgsu──一个802.1x认证程序:
spawn su -c xrgsu
#输入su密码:
expect "
assword:*"
send "123456"
#supplicant
#spawn xrgsu -a
#xrgsu运行后要求用户id、pw
expect "
lease input your user name:"
send "myid\r"
expect "
lease input your password:"
send "mypw\r"
#xrgsu寻问是否使用默认的设置:接受默认故直接回车
expect "Use DHCP,1-Use,0-UnUse(Default: 0):"
send "\r"
expect "Use default auth parameter,0-Use 1-UnUse(Default: 0):"
send "\r"
#等待成功认证
expect "
lease input 'unauth' to LogOff:"
#认证成功,开始睡觉
sleep 36000
#end
源码运行的很好,但是我想让它实现循环,在倒数第二行
sleep 36000,不要这样睡觉10h,而是希望睡觉1h之后起来,重新运行前面的所有行。如何循环,请高手指教。还有如果等待不成功(比如超时),如何重新发送请求,注意,在su后面的程序很容易跳出su身份,这是循环的一个麻烦。
在root用户下认证失败大过程如下:
[root@J wang]# xrgsu -a
XRGSupplicant 1.0.1
RuiJie Network CopyRight 2004
Please input your user name:123456
Please input your password:
Use DHCP,1-Use,0-UnUse(Default: 0):
Use default auth parameter,0-Use 1-UnUse(Default: 0):
Searching server...
Connecting server...
Authenticating...
您的用户名不存在(User
Authenticate FAIL!
xrgsu exit!
[root@J wang]#
认证失败不管什么原因,结果都会退出xrgsu程序,并以最后一行为共同标志。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2004-8-4 01:31:28
|
显示全部楼层
不了解expect,
不过论坛里有个expect的手册,里面讲了一些for循环的东东,
看是否对你有帮助! ;)
http://www.linuxsir.cn/bbs/showthread.php?threadid=96229
回复
支持
反对
使用道具
举报
显身卡
linuxjerry
linuxjerry
当前离线
积分
304
IP卡
狗仔卡
楼主
|
发表于 2004-8-4 01:38:27
|
显示全部楼层
这些功能其实也没什么很大的实用价值,因为认证成功之后不需要再主动认证,每隔10分钟会被认证机呼叫,程序没有退出的话它会自动应答,只有在网络中断和主机失去联系之后才会被踢出而需要重新认证。
那个手册我也看来,还看了man,似乎因为格式的原因失败,我用linux不到一个月,这是我的第一个shell,但是我并不想深入,因为我不是搞这行的,搞不出来就算了,我也不那么的需要它的完美。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
Gentoo Linux
硬件设备 Linux 驱动
SuSE Linux
Linux 基础讨论区(新手速成)
开源软件专题讨论
Ubuntu Linux 专题讨论
Redhat/Fedora/CentOS Linux
LFS(LinuxfromScratch)
Debian Linux
Linux 程序设计专题讨论
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表