RedHat ApacheのPAM設定に何がありましたか?

RedHat ApacheのPAM設定に何がありましたか?

Webアプリケーションを使用しているユーザーを認証するために、PAMにホスティングシステムの「passwd」および「shadow」ファイルを使用させたいとします。

私はRedHat 6を使用しており、Apacheは2.2、Apacheモジュールmod_authnz_pamです。

Apache( )httpd.confの PAM 構成は次のとおりです。

<Location />
  AuthType Basic
  AuthName "basic_auth"
  AuthBasicProvider PAM
  AuthPAMService httpd
  Require valid-user
</Location>

httpd/etc/pam.d次の設定でinというファイルを作成しました。

auth    required    pam_unix.so
account required    pam_unix.so
session required    pam_unix.so

SELinuxが有効になっています。getenforce「実施」を返します。私も以下を実行しました。

setsebool -P allow_httpd_mod_auth_pam 1

したがって、そのIPアドレスにアクセスしようとすると、ユーザーの資格情報を入力するように求められます。ただし、システム資格情報を入力すると、次のログが表示されます。

unix_chkpwd[29856]: 確認に合格しました。ユーザーが不明です。

unix_chkpwd [29856]:ユーザー(ユーザー名)パスワードの確認に失敗しました。

localhost httpd: pam_unix(httpd:auth): 認証失敗 logname= uid=48 euid=48 tty= ruser= rhost=xxx.xx.xx.x user=username

私のユーザー名は間違いなくpasswdファイルとShadowファイルに存在しますが、PAMではそれが存在しないと言います。

私は何を見逃していますか?

答え1

/etc/pam.d/httpdこれは同じまたは類似の設定です。

#%PAM-1.0
auth       include    system-auth
account    required   pam_nologin.so
account    include    system-auth
password   include    system-auth
session    optional   pam_keyinit force revoke
session    include    system-auth
session    required   pam_loginuid.so

アイデアは、ログインを認証するのではなく、pamスタックに別のファイルを表示させることです。通常、pam、pam、pamsystem-authなどの他の多くのpamサービスで呼び出されます。loginsusudo

関連情報