ユーザーがシステムのシャドウデータベースに基づいてログインできる必要があるDjangoアプリがあります。私が見つけたこれログインバックエンドの使用Python - ファーム、私の知る限り。前者をインストールすると、私のローカルコンピュータ(Arch Linux)へのログインには機能しますが、アプリケーションを実行したいサーバー(Debian Squeeze)では機能しません。
問題は、エラーをどのように掘り下げるべきか分からないという点だ。認証はfalseを返し、システムはPAMライブラリのログファイルを見つけることができません。どこで発掘を始めますか?
更新:pamが/var/log/auth.logを使用していることがわかりました。ログインしようとすると、次のメッセージが表示されます。 (oliは私のユーザー名です):
Jan 4 15:09:13 pc13620 python: pam_tally(login:auth): unknown option: pam_faildelay.so
Jan 4 15:09:13 pc13620 python: pam_tally(login:auth): unknown option: delay=3000000
Jan 4 15:09:13 pc13620 python: pam_tally(login:auth): Error opening /var/log/faillog for update
Jan 4 15:09:13 pc13620 unix_chkpwd[8070]: check pass; user unknown
Jan 4 15:09:13 pc13620 unix_chkpwd[8070]: password check failed for user (oli)
Jan 4 15:09:13 pc13620 python: pam_unix(login:auth): authentication failure; logname= uid=33 euid=33 tty= ruser= rhost= user=oli
Jan 4 15:09:13 pc13620 unix_chkpwd[8071]: check pass; user unknown
Jan 4 15:09:13 pc13620 unix_chkpwd[8071]: password check failed for user (oli)
答え1
libpam-unix2
Debian バックポートからインストールし、次の行を挿入してこの問題を解決しました/etc/pam.d/login
。
session required pam_unix2.so
auth required pam_unix2.so nullok
account required pam_unix2.so