www-data シャドウを提供せずに PHP を使用して PAM 経由で Linux アカウントを認証する方法

www-data シャドウを提供せずに PHP を使用して PAM 経由で Linux アカウントを認証する方法

これに対するフォローアップのようなもの:PHPを使用して/etc/shadowに対してユーザーを認証する最も安全な方法は何ですか?これは、Ubuntu 16.04に関連するコンテンツが表示されないためです。

HTTPを介してLinuxアカウント(Ubuntu 16.04)に認証しようとしていますが、PECL-PAM問題は認証するにはグループwww-dataに属している必要があることです。私が見つけた解決策は、次のものを使用することですが、その組み合わせの問題は、これまでに見つかったもののうち、過去の認証にログインしているユーザーの身元がないことです。shadow/etc/shadowmod_authnz_externalpwauth

/somedir/$user私の最終目標は、ユーザーがHTTP / PHPを介して認証し、ホームディレクトリ(たとえば)からファイルを管理できるようにすることです。私はもともとWebminを使用していましたが、fileminuserminモジュールに関連する他の問題が発生し、より多くのホームブレークソリューションに切り替えました。

www-dataはシャドウグループに属さず、認証にPHP / PAMパッケージを使用できますか?または、できない場合は、mod_authnz_externalANDを使用してpwauthログインしたユーザーとのセッションを開始できますか?

答え1

mod_authnz_externalPHP_AUTH_USERこの変数は、ユーザーが正常に認証されると設定されます。

次のようにセッションを開始できます。

<?php

if (isset($_SERVER['PHP_AUTH_USER'])) {
    // Your code which uses the username set in `$_SERVER['PHP_AUTH_USER']`
    // to set up a session.
}

答え2

トークン/検証へのアクセスを処理するためにボックスで実行されている既存のサービスを使用する方が簡単で安全ではありませんか? (ssh2_auth_password(), imap_open()....)

関連情報