Java中的Askpass程序

时间:2013-08-28 23:24:34

标签: java swing process

我想知道如何用Java编写askpass程序。我希望能够在Java sudo中使用Process,但我收到错误,告诉我要制作askpass程序。

我想从JTextFieldSwing)获取密码并将其提交给Process

3 个答案:

答案 0 :(得分:0)

如果不配置sudoers,则无法在脚本或java程序中使用sudo。您需要在/ etc / sudoers

中进行以下设置
Defaults:<username> !requiretty

其中username是Java进程的所有者。您也可能不希望被提示输入密码。所以你想要-n选项

sudo -n <mycommand>

为了使其正常工作,您可能需要在/ etc / sudoers上进一步配置。执行此操作的安全方法往往非常特定于您尝试运行的命令。一个快速而肮脏的解决方案是在/ etc / sudoers中包含以下内容

user <username>=(ALL) NOPASSWD: ALL

答案 1 :(得分:0)

这是一个让您入门的单行程序:

System.out.println(JOptionPane.showInputDialog(null, args[0], "AskPass", JOptionPane.QUESTION_MESSAGE));

答案 2 :(得分:0)

我通过让用户键入他们的sudo密码并执行命令来解决这个问题:

outputStreamWriter.write((useSudo.isSelected() ? " echo " + sudoPass + " | sudo -S " : "") + command);