用expect 实现切换用户时自动输入密码
2013-12-31 11:18
323 查看
一、 安装expect
expect作为一种交互性很强的脚本语言,它依赖于tcl,但linux系统里一般不自带安装tcl,需要手动安装。
expect版本 5.43
http://download.chinaunix.net/download/0003000/2845.shtml
tcl版本 8.4.19
http://sourceforge.net/projects/tcl/files/Tcl/8.4.19/tcl8.4.19-src.tar.gz/download
下载两个包,分别解压
1. 先安装tcl
进入tcl解压目录,然后进入unix目录
#./configure
#make
#make install
2. 后安装expect
进入expect解压目录,红色字符为当前目录
#./configure --with-tclinclude=/*****/tcl8.4.19/generic/ --with-tclconfig=/usr/local/lib/
#make
#make install
完成,测试
#expect
expect1.1>
到这里,expect安装完成。
二、自动切换用户
实现从普通用户“test”切换到root用户,自动输入root的密码,不用在终端提示符下执行密码输入操作。
vi autosu.sh进入脚本编辑:
#! /usr/bin/expect -f //指定expect工具的路径,如果不清楚具体路径,可以用"which expect"命令来查看。
set timeout 10 //
spawn sudo su - // 在expect 中用"spawn"关键字来调用命令“su - ”
expect ":" //判断上次输出结果里是否包含“:”的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的10秒
send "rootpasswd\r" //这里expect用send将你的root密码自动输入到上面的提示符之后。
interact //操作完成。
三、一般用户开机,自动启动root权限脚本
1、编辑切换用户脚本
2、添加开机自启动项
vi /etc/init.d/rc.local,在文件末尾加上:
>>参考来源,请点击这里
expect作为一种交互性很强的脚本语言,它依赖于tcl,但linux系统里一般不自带安装tcl,需要手动安装。
expect版本 5.43
http://download.chinaunix.net/download/0003000/2845.shtml
tcl版本 8.4.19
http://sourceforge.net/projects/tcl/files/Tcl/8.4.19/tcl8.4.19-src.tar.gz/download
下载两个包,分别解压
1. 先安装tcl
进入tcl解压目录,然后进入unix目录
#./configure
#make
#make install
2. 后安装expect
进入expect解压目录,红色字符为当前目录
#./configure --with-tclinclude=/*****/tcl8.4.19/generic/ --with-tclconfig=/usr/local/lib/
#make
#make install
完成,测试
#expect
expect1.1>
到这里,expect安装完成。
二、自动切换用户
实现从普通用户“test”切换到root用户,自动输入root的密码,不用在终端提示符下执行密码输入操作。
vi autosu.sh进入脚本编辑:
#! /usr/bin/expect -f //指定expect工具的路径,如果不清楚具体路径,可以用"which expect"命令来查看。
set timeout 10 //
spawn sudo su - // 在expect 中用"spawn"关键字来调用命令“su - ”
expect ":" //判断上次输出结果里是否包含“:”的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的10秒
send "rootpasswd\r" //这里expect用send将你的root密码自动输入到上面的提示符之后。
interact //操作完成。
三、一般用户开机,自动启动root权限脚本
1、编辑切换用户脚本
#! /usr/local/bin/expect set timeout 10 spawn sudo su - expect ":" send "123456\r" #root密码 expect "#" send "cd /home/youruser\r" #脚本所在的目录 expect "#" send "./autostart_root.sh\r" #脚本运行 expect "#" send "echo $?\r" sleep 10 interact
2、添加开机自启动项
vi /etc/init.d/rc.local,在文件末尾加上:
/home/youruser/autostart_root.sh
>>参考来源,请点击这里
相关文章推荐
- 用expect 实现切换用户时自动输入密码 (转载)
- 用expect 实现切换用户时自动输入密码
- RHCE_LAB(2)SSH远程登录自动验证(不输入用户登录密码)的实现
- 用expect实现su -c 自动切换用户功能
- linux、mac上用expect脚本实现脚本自动输入密码
- 当用户输入账号与密码后,Button自动切换成可点击状态
- linux 普通用户登录后,执行 shell脚本切自动输入密码切换到root
- RHCE_LAB(2)SSH远程登录自动验证(不输入用户登录密码)的实现
- 使用expect实现ssh自动输入密码,从而自动登陆Linux
- expect实现自动输入密码
- Shell脚本中调用expect,实现自动输入密码的功能
- Linux在脚本中实现普通用户到root用户的切换(包括脚本输入密码)
- 使用expect脚本实现Linux中自动输入密码
- linux、mac上用expect脚本实现脚本自动输入密码
- expect实现scp ssh自动输入密码登录
- shell脚本通过expect脚本实现自动输入密码
- Linux自动切换用户脚本,自动输入用户名密码
- linux shell(/usr/bin/expect)实现自动输入密码登录,并执行命令
- 通过expect实现scp密码自动输入
- 编写一个jsp程序,实现用户登录,当用户输入的用户或密码错误时,将页面重定向到错误提示页,并在该页面显示30秒后 自动回到用户登录界面