gpt4 book ai didi

java - 使用 JAVA 更改 UNIX 密码

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:48 24 4
gpt4 key购买 nike

<分区>

对不起,如果我的英语很糟糕。我想问一下如何从 Java 执行“passwd”命令(我使用 Netbeans IDE 和 JSCH 库)

这是我的代码

String username = txtusername.getText();
String password = txtpassword.getText();
String ip = txtIP.getText();
int port = 22;
Session session = null;
Session session2=null;
ChannelExec channel = null;
Channel channel2 = null;
StringBuffer result = new StringBuffer();
try
{
JSch shell = new JSch();
session = shell.getSession(username, ip, port);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setPassword(password);
session.connect(3000);
channel = (ChannelExec) session.openChannel("exec");
((ChannelExec)channel).setCommand("passwd");

channel.setInputStream(null);
channel.setOutputStream(null);
((ChannelExec)channel).setErrStream(System.err);

InputStream in=channel.getInputStream();
OutputStream out=channel.getOutputStream();

PrintStream char_to_send_to_channel = new PrintStream(out,true);
BufferedReader out_from_channel=new BufferedReader(new InputStreamReader(in));
char_to_send_to_channel.println();

String line;
channel.connect();

JOptionPane.showMessageDialog(null,"Channel opened!" +"\n");

// Process p = Runtime.getRuntime().exec("passwd");

byte[] tmp=new byte[1024];
while(true){
while(in.available()>0){
int i=in.read(tmp, 0, 1024);
if(i<0) {
break;
}
}
}
} catch (IOException ex) {
Logger.getLogger(connect.class.getName()).log(Level.SEVERE, null, ex);
} catch(JSchException | HeadlessException e){
JOptionPane.showMessageDialog(null, e);
}
}

问题是,我的输出就像

(current) UNIX password: 

如果我键入/输入当前的 UNIX 密码,则什么也没有发生。我想更改安装在我的 VMWare 上的 Ubuntu Server 帐户密码。我在我原来的操作系统上运行这个程序。简单地说,我希望我的输出是交互式的(输入和输出就像 linux 命令“passwd”的输出一样)

我的代码有什么问题? :( 需要建议

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com