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

如何用Java创建API来更改Unix用户的密码?,java,unix,Java,Unix,我不熟悉Unix环境 我要做的是创建一个API来更改拥有Unix环境的用户的密码。在处理密码时要非常小心,以免发生泄漏。用于调用系统命令(通常是passwd)处理密码时要特别小心,以免泄漏。用于调用系统命令(通常为passwd)基本上,您需要使用用于更改密码的“passwd”unix命令 您需要使用 还是旧的API 现在,如果希望以交互方式运行passwd命令(如使用某些ui输入实际密码等),还需要截取passwd命令的输出。在这种情况下,我建议你阅读 你也可以考虑使用某种预定义的shell脚本

我不熟悉Unix环境


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

在处理密码时要非常小心,以免发生泄漏。用于调用系统命令(通常是
passwd

处理密码时要特别小心,以免泄漏。用于调用系统命令(通常为
passwd

基本上,您需要使用用于更改密码的“passwd”unix命令

您需要使用

还是旧的API

现在,如果希望以交互方式运行passwd命令(如使用某些ui输入实际密码等),还需要截取passwd命令的输出。在这种情况下,我建议你阅读

你也可以考虑使用某种预定义的shell脚本,允许非交互式地更改密码。在本例中,您只需调用脚本,它将完成所有工作


希望这有帮助

基本上,您需要使用用于更改密码的“passwd”unix命令

您需要使用

还是旧的API

现在,如果希望以交互方式运行passwd命令(如使用某些ui输入实际密码等),还需要截取passwd命令的输出。在这种情况下,我建议你阅读

你也可以考虑使用某种预定义的shell脚本,允许非交互式地更改密码。在本例中,您只需调用脚本,它将完成所有工作


希望这能给你一个提示。调用
passwd
命令后,当系统请求密码时,需要在标准输出上打印密码2次

要查看调用
exec()后如何读取表单stdin,请检查:

一个提示。调用
passwd
命令后,当系统请求密码时,需要在标准输出上打印密码2次

要查看调用
exec()后如何读取表单stdin,请检查:

到目前为止,您编写过代码吗?如果是这样,请发布您所做的工作,以便我们能够更好地帮助您。我已经搜索了要实现的代码,因为我从未在Unix环境中执行过java代码。所以我也在寻找。到目前为止,我已经搜索了ProcessBuilder pb=newProcessBuilder(“myhellscript.sh”、“myArg1”、“myArg2”);Map env=pb.environment();环境看跌期权(“VAR1”、“myValue”);环境移除(“其他变量”);环境put(“VAR2”,环境get(“VAR1”)+“后缀”);目录(新文件(“myDir”);进程p=pb.start();现在我正试图弄清楚像myarg1、var、othervar这样的变量的含义。到目前为止你写过代码吗?如果是这样,请发布您所做的工作,以便我们能够更好地帮助您。我已经搜索了要实现的代码,因为我从未在Unix环境中执行过java代码。所以我也在寻找。到目前为止,我已经搜索了ProcessBuilder pb=newProcessBuilder(“myhellscript.sh”、“myArg1”、“myArg2”);Map env=pb.environment();环境看跌期权(“VAR1”、“myValue”);环境移除(“其他变量”);环境put(“VAR2”,环境get(“VAR1”)+“后缀”);目录(新文件(“myDir”);进程p=pb.start();现在,我正试图了解myarg1、var、othervar等变量的含义,并搜索要实现的代码,因为我从未在Unix环境中执行过java代码。所以我也在寻找。到目前为止,我已经搜索了ProcessBuilder pb=newProcessBuilder(“myhellscript.sh”、“myArg1”、“myArg2”);Map env=pb.environment();环境看跌期权(“VAR1”、“myValue”);环境移除(“其他变量”);环境put(“VAR2”,环境get(“VAR1”)+“后缀”);目录(新文件(“myDir”);进程p=pb.start();我搜索了要实现的代码,因为我从未在Unix环境中执行过java代码。所以我也在寻找。到目前为止,我已经搜索了ProcessBuilder pb=newProcessBuilder(“myhellscript.sh”、“myArg1”、“myArg2”);Map env=pb.environment();环境看跌期权(“VAR1”、“myValue”);环境移除(“其他变量”);环境put(“VAR2”,环境get(“VAR1”)+“后缀”);目录(新文件(“myDir”);进程p=pb.start();