Não é possível fazer com que a autenticação PHP PAM funcione

2

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.

    
por DWilliams 06.01.2010 / 16:14

2 respostas

4

Você deve usar pam_unix em vez de pam_pwdb Qual OS / distribuição você está executando?

    
por 06.01.2010 / 16:23
0

Parece que seu arquivo /lib/security/pam_pwdb.so não existe

    
por 06.01.2010 / 17:35

Tags