Você deve usar pam_unix em vez de pam_pwdb Qual OS / distribuição você está executando?
Essa questão é dividida entre o domínio do SO e o SF. É para um projeto de codificação, mas acredito que o erro que estou encontrando tem mais a ver com a administração do sistema do que com o código, então vou colocá-lo aqui.
Estou tentando criar uma página de login do PHP que autentique os usuários em suas contas de usuário pré-existentes do sistema. Instalei o módulo de autenticação do php5 pam e segui a documentação para configurá-lo.
Eu criei /etc/pam.d/php com o seguinte conteúdo:
# /etc/pam.d/php
#
# note: both an auth and account entry are required
auth sufficient /lib/security/pam_pwdb.so shadow nodelay
account sufficient /lib/security/pam_pwdb.so
Eu adicionei "pam.servicename=" php ";" para o meu arquivo /etc/php5/apache2/php.ini e reiniciei meu serviço apache.
Sempre que meu script usa a função pam_auth, o seguinte aparece no meu auth.log:
Jan 6 08:56:33 cobalt apache2: PAM unable to dlopen(/lib/security/pam_pwdb.so)
Jan 6 08:56:33 cobalt apache2: PAM [error: /lib/security/pam_pwdb.so: cannot open shared object file: No such file or directory]
Jan 6 08:56:33 cobalt apache2: PAM adding faulty module: /lib/security/pam_pwdb.so
Como posso consertar isso? Para algo tão simples (ou assim eu pensei), eu deveria apenas escrever minhas próprias funções para analisar / etc / shadow e / etc / passwd? Eu não estou tentando registrar o usuário no sistema em si, eu só preciso deixar o usuário entrar no meu script com o usuário / senha do sistema e verificar se eles pertencem a um grupo apropriado para executar um determinado relatório.
Você deve usar pam_unix em vez de pam_pwdb Qual OS / distribuição você está executando?
Parece que seu arquivo /lib/security/pam_pwdb.so não existe