PHP passwd错误

时间:2011-04-08 12:16:47

标签: php shellexecute shell-exec passwd

我这样做:

$user = 'kevin';
$pass = 'nivek';
shell_exec('echo -e "' . $pass . '\n' . $pass . '" | sudo passwd ' . $user);`

但是当我执行此操作时,我收到此错误:

Enter new UNIX password: Retype new UNIX password: Sorry, passwords do not match
passwd: Authentication token manipulation error
passwd: password unchanged

为什么呢?我该如何解决这个问题?如何隐藏passwd的输出?

2 个答案:

答案 0 :(得分:2)

使用--stdin for passwd从标准输入读取。然后你可以管道密码。

答案 1 :(得分:1)

您可以使用以下代码:

$user = 'kevin';
$pass = 'nivek';
shell_exec('echo -e "' . $pass . '" | sudo passwd --stdin ' . $user);

这似乎对我有用(虽然在没有sudo的情况下测试过,你可能需要第二个)。

我不确定sudo是否会起作用。