如何用java 实现linux su命令自动登录

yahaboss 发布于 2013/08/22 11:31
阅读 2K+
收藏 1
如何用java 实现linux su命令自动登录 ,例如要在linux下面su -,屏幕会提示输入密码,如何用java程序让他自动输入密码,然后继续执行以后的命令。不能用ssh2,由于系统禁止root的ssh2登录,只能用su了
加载中
0
n
newlife867

第一,用expect 脚本 http://linux.die.net/man/1/expect

在java起个Process调这个脚本。

第二,直接点,java里起个Process,运行bash,拿到Process的Inputstream,outputStream,然后随便你怎么玩。

yahaboss
yahaboss
回复 @糖咖啡 : 我用了Robot去模拟键盘输入都不行
爱喝貓的咖啡
爱喝貓的咖啡
第一个也许可行,第二个基本不可行,因为linux下输入密码之类的只接收键盘流,一般的输入输出流不好使。
0
viney
viney

我的方案是这样的:

首先创建自动登录脚本:

下载expect

#!/usr/bin/expect

spawn ssh root@127.0.0.1
expect "password"
send "yourpassword\r"
interact
使用java执行这个脚本就可以root自动登录了。

yahaboss
yahaboss
不能用expect,还有别的办法么
0
n
newlife867

遇到这么奇怪的要求,我认为第一要做的是问清楚,或者想清楚为什么要这样要求。


yahaboss
yahaboss
就是环境太封闭了。。。。很多事情都不给干。。
0
L
LLeiFeng
这个问题解决了吗?能分享一下是怎么解决的吗?谢谢~
0
漓江
漓江

linux下使用管道就可以实现了。如果想使用java的话,调用runTime()同样的道理。

echo "passwd" | su users

返回顶部
顶部