易截截图软件、单文件、免安装、纯绿色、仅160KB

Java 使用SSH连接Linux 使用passwd命令修改密码


使用InputStream和OutputStream来获得命令行运行结果和输入内容是首先需要具备的.
然后要解决SSH连接问题.
在OpenSource项目里找到了Ganymed SSH-2 for Java .下载后有例子,但是没有找到有关交互命令的例子.所以自己探索了一下
在网上看有老外讨论用这个如何改密码,基本上的问题都是因为找不到返回的提示
Linux修改密码输入passwd后,首先是输入当前密码,然后是输入两个新密码
如果当前密码输入错误,或者新密码输入不符合系统密码规则要求,会要求重新输入.如果碰到这种情况,程序很容易进入一个不太好控制的循环.
可能一般人都认为输入命令后所有的返回都应该是用session.getStdout();而不是session.getStderr();从方法名称上看确实如此,一个是取得标准输出,一个是取得错误信息.
其实在输入passwd后.
Changing password for user [username].
Changing password for [username]
这两行是需要通过session.getStdout();来获得的.但是后面的
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
这三行是需要使用sessssion.getStderr();来获取的
如果用户输入没有通过系统检测,会返回具体原因,但是都是BAD PASSWORD开始的.
如果最后修改成功了.你也会看到有successfully来表示.这些信息是通过session.getStdout();来获取的.
现在问题很好解决了吧.
写了一个类来完成修改密码的操作.
后来使用这个方法,现在公司内部新建帐号以及帐号设置自动邮件回复都可以通过自己的管理系统设置了.
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
import com.io.Debug;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
public class ChangeEmailPassword {
private String username = "";
private String oldpassword = "";
private Connection conn = null;
private boolean hasError = false;
private String ErrorMessage = "";
private boolean isSuccessfully = false;
private String SystemMessage = "";

public static final String HOST = "127.0.0.1"; //server ip
public boolean isSuccessfully(){
return isSuccessfully;
}
public boolean isHasError(){


相关文档:

传智播客JAVA培训OA项目 审批流转模块


传智播客JAVA培训OA项目 审批流转模块(未)
做工作,做技术,最主要的就是有一种专研的功能,特别是在学习的初期阶段也很重要,因为,老师永远不可能把所有的知识交给你,就像,你被你母亲生了下来,他手把手的教会了你走路,但是人生的路却是要你自己去走的一样。往日的学校,也仅仅是教会了你做人的道理,或者是学 ......

java 哈夫曼编码反编码的实现

 //哈弗曼编码的实现类
public class HffmanCoding {
private int charsAndWeight[][];// [][0]是 字符,[][1]存放的是字符的权值(次数)
private int hfmcoding[][];// 存放哈弗曼树
private int i = 0;// 循环变量
private String hcs[];
public HffmanCoding(int[][] chars) {
// TODO 构造方法
......

传智博客java培训 javaweb基础之编码

一直以来,java对于我都是新事物,对于新事物的接受方式也一直习惯从浅入深,循序渐进。
但是今天,张孝详老师给我们上了生动的一课,一个程序员最重要的能力就是学习能力,因为
计算机领域的技术其更新超快,目前所掌握的知识很有可能短时间内会被淘汰,而且会出现更好
更简洁的语言,那么该怎么去掌握呢。张老师认为, ......

linux管理

使用df和du命令来监控文件系统的有效空间的大小
通过清除不用的文件和core文件来清理文件系统空间
通过修剪日志文件来清理/var文件系统
从命令行扩展一个卷组
从命令行扩展一个逻辑卷
从命令行扩展一个文件系统
1.监控磁盘使用情况
使用df 命令检查文件系统的有效空间。
# df -k
Filesystem kbytes used avai ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号