pam-php
は、PAM (Pluggable Authentication Modules) と PHP を統合するためのモジュールです。これにより、PHP スクリプトを利用してシステム認証のプロセスをカスタマイズできます。
- PHP から PAM 認証関数にアクセス
- ユーザー名の取得やカスタム質問の設定が可能
- PHP スクリプトでの動的な認証ロジックの実装
$ make docker
$ su - gopher
$ su - phper
- PHP 7.4 以上
- PAM ライブラリ
- GCC コンパイラ (モジュールのコンパイルに必要)
- PHP がインストールされ、コマンドラインから実行可能であることを確認してください。
- 必要なヘッダーファイルがシステムにインストールされていることを確認してください。
- ソースコードをダウンロードまたはクローンします。
- モジュールをコンパイルします。
- コンパイルしたモジュールをシステムにインストールします。
以下は、PAM 認証を行う PHP スクリプトの例です。このスクリプトは、ユーザーにいくつかのクイズ問題を出し、全問正解すると認証を通過するように設計されています。
<?php
function pam_authenticate($pamh): int
$username = get_user($pamh);
$password = trim(ask_question($pamh, "Password: "));
if ($usename == "admin" && $password == "secret") {
return 0;
} else {
return 1;
}
?>
/etc/pam.d/ にある適切な設定ファイル (例: common-auth) に以下を追加して、pam-php モジュールを有効にします。
auth sufficient pam_php.so /path/to/your/script.php
このプロジェクトは MIT ライセンスの下で提供されます。詳細は LICENSE ファイルを参照してください。
このプロジェクトへの貢献を歓迎します。バグ報告、機能リクエスト、プルリクエストなどを GitHub リポジトリを通じて行ってください。