昨天一个网友问如何能够将输入密码的工作在shell里面自动完成,研究了一下,发现这种交互式的工作,普通的shell实现不了,据说可以借助expect来搞定,所以初步学习了一下expect,成果和大家分享一下: 应用一: 实现从普通用户“test”切换到root用户,自动输入root的密码,不用在终端提示符下执行密码输入操作。 步骤: (1)vi autosu.sh (2)#! /usr/bin/expect -f //指定expect工具的路径,如果不清楚具体路径,可以用"which expect"命令来查看。 spawn su - // 在expect 中用"spawn"关键字来调用命令“su - ” expect ":" //在执行了su - 命令之后,提示输入密码的提示符。例如你在执行了su - 命令之后,终端里面会出现提示“口令:”,那么你就可以在这里写expect ":",或者expect -exact "口令:" send "rootpasswd\r" //这里expect用send将你的root密码自动输入到上面的提示符之后。 interact //操作完成。 注意:这里强调一下执行脚本时要注意的地方,不能按照习惯来用sh ***.sh来这行expect的程序,会提示找不到命令,因为expect用的不是bash所以会报错。执行的时候直接./***.sh就可以了。~切记! 应用二: 从普通用户切换到root之后,执行“ls”操作,调用执行aaa.sh,返回执行结果,间隔10S。 #/usr/bin/expect -f spawn su - // 在expect 中用"spawn"关键字来调用命令“su - ” expect ":" //在执行了su - 命令之后,提示输入密码的提示符。例如你在执行了su - 命令之后,终端里面会出现提示“口令:”,那么你就可以在这里写expect ":",或者expect -exact "口令:" send "rootpasswd\r" //这里expect用send将你的root密码自动输入到上面的提示符之后。 expect "#" //当遇到提示符以#结尾时,即为root权限时; send "ls\r" //expect 用spend方法调用ls 命令,并且回车(“\r”) expect "#" send "sh aaa.sh\r" //调用sh aaa.sh,即执行一个脚本文件aaa.sh。 expect "#" send "echo $?\r" sleep 10 interact
2024-06-07 20:45:52 2KB selenium
1
使用Keepass 自动输入密码,安装承包在此,详情配置见https://netboy.blog.csdn.net/article/details/124852555
2022-05-19 12:00:56 4.23MB 运维
1
域用户runas以管理员身份运行CMD,自动输入密码代码。
2022-04-02 11:22:27 261B runas
1
运行sunas自动输入密码(sanur,本工具是sunas的辅助工具,当我们在命令行下安装软件,特别是我们再使用user用户安装软件时,这个工具是我们的好帮手。
2022-03-12 21:52:51 5KB runas sanur
1
解决 runas error 740 ,UAC
2021-10-13 16:01:04 782B RUNAS
1
主要介绍了Shell脚本实现自动输入密码登录服务器,本文使用expect来实现这个需求,讲解了expect的安装及使用脚本,需要的朋友可以参考下
2021-10-09 16:05:05 194KB Shell脚本 自动输入密码 登录服务器
1
一款开机自动输入密码的工具。免去输入密码。
2021-09-07 16:11:05 77KB 开机 密码
1
软件安装无管理员权限的user账户的PC客户端只能使用第三方工具,但又担心不安全,本工具是系统自带vbs支持的,简单代码来实现以vbs文件调用runas命令运行需要管理用户授权的程序或批处理文件,并自动输入密码,真正实现了无三方工具的安全运行,经测试能正常使用。
2019-12-21 20:49:15 1KB runas 自动 vbs 输入密码
1