我有一个 Django 应用程序,用户应该能够根据系统的影子数据库登录。我发现这登录后端使用python-pam,据我所知。虽然安装前者可以在我的本地计算机(Arch linux)上登录,但它不能在我希望运行应用程序的服务器(Debian Squeeze)上登录。
问题是,我不知道如何挖掘错误。身份验证仅返回 false,并且我在系统上找不到 PAM 库的任何日志文件。你会从哪里开始挖掘?
更新:我发现 /var/log/auth.log 由 pam 使用。尝试登录时出现以下内容。 (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 backports 安装并将以下行插入到中解决了这个问题/etc/pam.d/login
:
session required pam_unix2.so
auth required pam_unix2.so nullok
account required pam_unix2.so