php - proc_open(或其他有效的功能)

时间:2008-09-25 09:50:03

标签: php passwd proc-open

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

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

那么,如何使用proc_open函数执行此操作? 或者我应该使用其他功能来执行此操作吗?


Adam Wright,我试过你的例子,但我无法更改用户密码。 我是否需要在脚本中执行任何其他操作(除了定义$ user,$ userPassword和$ newPassword)?

由于

3 个答案:

答案 0 :(得分:1)

您无需发出登录信息即可更改用户的密码,只需将其名称命名为passwd即可。使用popen(因为我们不需要阅读这个小例子),类似

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

如果你想阅读回复,请使用proc_open,然后只读取你给出的stdout句柄。

我希望这一切都很安全,并且您在用户名上有很多的消毒。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

在互联网上找到此Change Linux or UNIX system password using PHP script

关于如何创建用户可以更改自己的系统密码的网站的详细说明。