我正在尝试通过在输出流中发送密码来从 java 程序中更改 linux 中的用户密码,但它没有完成。
我的java程序就像
Process process = Runtime.getRuntime().exec("sudo passwd sampleuser");
OutputStream outputStream = process.getOutputStream();
InputStream inputStream = process.getInputStream();
PrintWriter printWriter=new PrintWriter(outputStream);
printWriter.write("123456");
printWriter.write("\n");
printWriter.flush();
我的程序在这里失败,它要求输入密码,但我不想要这种情况。
有没有可能从java程序提供密码?你能建议我吗,我将如何成功地做到这一点,或者是否有任何可用的 shell api。
当我尝试使用 shell 脚本并从我的 java 程序中调用它时,同样的事情成功完成
Process process = Runtime.getRuntime().exec("bash first.sh");
我的shell脚本是
i="123456"
echo -e $i"\n"$i|sudo -S passwd sampleuser
它成功地更改了用户密码。