ホームページ >バックエンド開発 >PHPチュートリアル >PHP スクリプトを使用して Linux または Unix システムのパスワードを変更する_PHP チュートリアル

PHP スクリプトを使用して Linux または Unix システムのパスワードを変更する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:57:25790ブラウズ

必要なツールとインストール:

次のツールとソフトウェアをインストールする必要があります:

– Sudo アクセス;

– 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


シェル スクリプトを実行します (ダウンロード リンク):


$ chpasswd username、password


スクリプトをダウンロードし、それをコピーします 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 アドレス https://mydomain.com/changepassword.php を入力します。ユーザー名とパスワードのプロンプトが表示されます:

パスワードが正常に変更されると、確認のプロンプトが表示されます:

何らかの理由でパスワードの変更が失敗した場合は、次のヒントを参照して、より詳細なエラー情報を取得できます。 :

ステップ 5: セキュリティ

◆上記のスクリプトを http プロトコル上で直接実行しないで、代わりに https プロトコルを使用してください。

◆スクリプトをパスワードで保護されたディレクトリに置きます。

◆ユーザー入力を決して信用しないでください。上記のphpスクリプトは一例です。実際の運用環境では、より強力なユーザー入力検証の実装を検討する必要があります。 PHP プログラミングにおけるセキュリティについては、この記事の範囲を超えています。優れた PHP 書籍を参照したり、お気に入りの検索エンジンを使用して関連する Web サイトを検索したりできます。





http://www.bkjia.com/PHPjc/364029.html

www.bkjia.com

tru​​e

技術記事必要なツールとインストール: 次のツールとソフトウェアをインストールする必要があります: パスワードを変更するためのシェル スクリプト、Apache または Lighttpd Web サーバー プログラム。 ステップ 1: インストールは...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。