0

ブラウザを介していくつかのコマンドラインを実行する必要があります。コマンドラインで行う必要があるのは次のとおりです。

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

proc_openでは、関数を使用してこれを行うにはどうすればよいですか? または、これを行うには別の関数を使用する必要がありますか?


Adam Wright、あなたの例を試しましたが、ユーザーのパスワードを変更できません。$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

このChange Linux or UNIX system password using PHP scriptをインターネットで見つけました。

ユーザーが自分のシステム パスワードを変更できる Web サイトの作成方法に関する非常に詳細な説明。

于 2008-09-25T15:49:49.730 に答える
1

ユーザーのパスワードを変更するために login を発行する必要はありません。名前を passwd に指定するだけです。popen を使用すると (この小さな例では読む必要がないため)、次のようになります。

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

応答を読みたい場合は、proc_open を使用し、与えられた stdout ハンドルから読み取るだけです。

これがすべて十分に安全であり、ユーザー名が十分にサニタイズされていることを願っています.

于 2008-09-25T11:52:25.607 に答える