【发布时间】:2015-06-15 02:04:36
【问题描述】:
我有一个在 linux 上运行的 Java 程序,它需要能够设置用户初始 samba 密码,然后允许他们更改密码而不授予他们访问终端的权限。
下面是我更改用户密码的代码,因为这更容易测试,一旦我解决了这个问题,我将能够弄清楚另一部分。
-s 标志应该允许使用标准输入。
String cmd = "smbpasswd -s -U user";
Process p = Runtime.getRuntime().exec(cmd);
OutputStreamWriter Out = new OutputStreamWriter(p.getOutputStream());
InputStreamReader In = new InputStreamReader(p.getInputStream());
BufferedWriter Write = new BufferedWriter(Out);
BufferedReader Read = new BufferedReader(In);
char[] output = null;
//I write all of the output lines to the log, but nothing is written, and the password doesn't change.
Read.read(output);
Write.write(OldPass);
Read.read(Output);
Write.write(NewPass);
Read.read(Output);
Write.write(NewPass);
Read.read(Output);
我需要一些帮助来弄清楚我做错了什么,以及如何正确地解决这个问题。任何帮助表示赞赏。
【问题讨论】:
标签: java linux passwords samba