我需要通过浏览器执行一些命令行。 我需要在命令行中做的是:
$login
<login name>
<password>
$passwd
<old password>
<new password>
<retype new password>
那么,如何使用proc_open
函数执行此操作?
或者我应该使用其他功能来执行此操作吗?
由于
答案 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。
关于如何创建用户可以更改自己的系统密码的网站的详细说明。