Eu resolvi isso instalando libpam-unix2
dos backports do Debian e inserindo as seguintes linhas em /etc/pam.d/login
:
session required pam_unix2.so
auth required pam_unix2.so nullok
account required pam_unix2.so
Eu tenho um aplicativo django onde os usuários devem poder fazer o login de acordo com o banco de dados de sombra do sistema. Eu encontrei este login de login que usa python-pam , tanto quanto eu posso dizer. Ao instalar o primeiro faz o login funcionar na minha máquina local (Arch linux) ele não funciona no servidor onde eu quero que o aplicativo seja executado (Debian Squeeze).
O problema é que não sei como descobrir o erro. A autenticação apenas retorna false e não consigo encontrar nenhum arquivo de log para a biblioteca PAM no sistema. Onde você começaria a cavar?
Atualização: descobri que /var/log/auth.log é usado pelo pam. O seguinte aparece ao tentar fazer o login. (oli é meu nome de usuário):
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)