ホームページ >バックエンド開発 >PHPチュートリアル >unixtimestamp PHP を通じて Linux または Unix のパスワードを変更する方法を共有します

unixtimestamp PHP を通じて Linux または Unix のパスワードを変更する方法を共有します

WBOY
WBOYオリジナル
2016-07-29 08:47:461139ブラウズ

必要なツールとインストール:
次のツールとソフトウェアをインストールする必要があります:
-パスワードを変更するためのシェル スクリプト
- Apache または Lighttpd Web サーバー
- PHP サーバー プログラム。
ステップ 1: ユーザーのパスワードを変更できるシェル スクリプトをインストールする
このスクリプトは、実際に Linux ユーザーのパスワードを変更するために使用できます (Linux と FreeBSD でテスト済み)。
例:シェルスクリプトコード
#!/bin/sh # exec Expect -f “$0″ ${1+”$@”} set passwd [lindex $argv 1] spawn passwd [lindex $argv 0] sleep 1 Expect “ assword:" send "$passwordr" Expect "assword:" send "$passwordr" Expect eof run シェル スクリプト (ダウンロード リンク):
$ chpasswd username password スクリプトをダウンロードし、Web ルート ディレクトリまたは Web 上の他の場所にコピーします。 Web サーバーの場所 (ユーザーが読み取り可能):
$ cp chpasswd /var/www/ または、Lighttpd Web サーバーを使用する場合:
$ cp chpasswd /home/lighttpd ステップ 2: sudo 経由で root としてコマンドを実行します
Apache またはLighttpd Web サーバー バックグラウンドで実行した直後に、root 以外の権限が使用されます。 passwd コマンドで他のユーザー アカウントのパスワードを変更するには root 権限が必要であるのと同様に、これによりパスワードの変更を非常に効果的に防ぐことができます。
通常、Apache 2 は www-data ユーザーを使用し、Lighttpd は lighttpd ユーザーを使用します (どちらも通常のユーザー、非 root ユーザー)。 root ユーザーとしてログインし、次のコマンドを実行します。
# visudo これで、Web サーバーはパスワード変更スクリプト (chpasswd) の実行を許可します。 Apache Web サーバーを使用する場合は、次のコマンドを実行します。
www-data ALL=NOPASSWD: /var/www/chpasswd または、Lighttpd Web サーバーを使用する場合は、次のコマンドを実行します。
httpd ALL=NOPASSWD: /home /lighttpd /chpasswd はファイルを保存して終了します。
ステップ 3. PHP ベースのインターフェイスを作成する
次に、php スクリプトを記述する必要があります。以下は php スクリプトの例です。ニーズに応じて変更できます。少なくとも、シェル スクリプトの場所を正しく設定する必要があります。 php スクリプトを開き、シェルスクリプト行を見つけます:
$shellscript = “sudo /home/lighttpd/chpasswd”; 正しい場所を指すようにシェルスクリプトを変更します。ここから PHP ソース コードをダウンロードします:
ステップ 4: スクリプトを実行します
Web ブラウザのアドレス バーに Web アドレスを入力すると、ユーザー名とパスワードのプロンプトが表示されます:
パスワードが正常に変更されると、次のメッセージが表示されます。確認プロンプト:
何らかの理由でパスワードの変更が失敗した場合は、次のヒントを参照して、より詳細なエラー情報を取得できます:
ステップ 5: セキュリティ
◆上記のスクリプトを http プロトコル経由で直接実行しないでください。代わりに、http プロトコルを使用してください。 https プロトコル。
◆スクリプトをパスワードで保護されたディレクトリに置きます。
◆ユーザー入力を決して信用しないでください。上記のphpスクリプトは一例です。実際の運用環境では、より強力なユーザー入力検証の使用を検討する必要があります。 PHP プログラミングにおけるセキュリティについては、この記事の範囲を超えています。優れた PHP 書籍を参照したり、お気に入りの検索エンジンを使用して関連する Web サイトを検索したりできます。
上記では、unixtimestamp を使用して PHP 経由で Linux または Unix のパスワードを変更する方法を紹介しました。unixtimestamp の内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。