小编Ruj*_*uju的帖子

我可以从java程序更改linux中的用户密码吗?

我试图通过在输出流中发送密码来从 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();
Run Code Online (Sandbox Code Playgroud)

我的程序在这里失败并要求输入密码,但我不想要这种情况。

有没有可能从java程序提供密码?你能建议我吗,我将如何成功地做到这一点,或者是否有任何可用的 shell api。

当我尝试使用 shell 脚本并从我的 java 程序调用它时,同样的事情成功完成

Process process = Runtime.getRuntime().exec("bash first.sh");
Run Code Online (Sandbox Code Playgroud)

我的shell脚本是

i="123456"

echo -e $i"\n"$i|sudo -S passwd sampleuser
Run Code Online (Sandbox Code Playgroud)

它成功地更改了用户密码。

java linux bash shell ubuntu

3
推荐指数
1
解决办法
3305
查看次数

标签 统计

bash ×1

java ×1

linux ×1

shell ×1

ubuntu ×1