0

我需要通过浏览器执行一些命令行。我需要在命令行中做的是:

$login
<login name>
<password>
$passwd
<old password>
<new password>
<retype new password>

那么,我该如何使用该proc_open功能来做到这一点?或者我应该使用另一个功能来做到这一点?


亚当赖特,我试过你的例子,但我无法更改用户密码。我是否需要在脚本中做任何其他事情(除了定义 $user、$userPassword 和 $newPassword)?

谢谢

4

3 回答 3

1

http://pecl.php.net/package/PAM可能是您可以使用的东西。
它有一个功能bool pam_chpass(string $username, string $oldpassword, string $newpassword [, string &$error ])
但我从未使用过它。

于 2008-09-25T12:19:50.343 回答
1

在互联网上使用 PHP 脚本找到了这个更改 Linux 或 UNIX 系统密码。

关于如何创建一个用户可以更改自己的系统密码的网站的非常详细的描述。

于 2008-09-25T15:49:49.730 回答
1

您不需要发出登录来更改用户的密码,只需将他们的名字提供给 passwd。使用 popen (因为我们不需要在这个小例子中阅读),比如

$pp = popen("passwd ${user}", "w");
fwrite($pp, $oldPassword . '\n');
fwrite($pp, $newPassword . '\n');
fwrite($pp, $newPassword . '\n');
pclose($pp);

如果您想阅读响应,请使用 proc_open,然后从您提供的标准输出句柄中读取。

我希望这一切都得到了很好的保护,并且您对用户名进行了很多清理。

于 2008-09-25T11:52:25.607 回答