如何在Java中创建API来更改Unix用户的密码?

时间:2012-10-10 05:55:51

标签: java unix

我是Unix环境的新手,

我要做的是创建一个API来更改拥有Unix环境的用户的密码。

3 个答案:

答案 0 :(得分:2)

在处理密码时要非常小心,以免泄漏。使用exec()调用系统命令(通常为passwd

答案 1 :(得分:1)

基本上你需要使用'passwd'unix命令来改变密码。

您需要使用ProcessBuilder

从java调用此命令

或较旧的API Runtime

现在你还需要拦截passwd命令的输出,如果你想以交互方式运行它(比如用一些ui来输入实际的密码等等)。在这种情况下,我建议你阅读This article

您可以考虑使用某种预定义的shell脚本,以允许以非交互方式更改密码。在这种情况下,您只需调用脚本,它就可以完成所有工作。

希望这有帮助

答案 2 :(得分:1)

一个提示。在调用passwd命令后,当系统要求时,您需要在stdout上打印密码2次。

要查看调用exec()后的读取格式stdin: http://www.ensta-paristech.fr/~diam/java/online/io/javazine.html