Forma programática para validar um login / senha do Linux

2

Gostaria de validar um nome de usuário e senha que correspondem a uma conta unix válida.

A solução atual que eu tenho usa espera aguardar um prompt de senha e depois fornecer a senha e ver se o login é bem-sucedido.

Existe uma API do kernel ou uma função de espaço do usuário que pode validar um login / senha.

Acho que parte da minha confusão é que não tenho certeza se esse é um serviço de espaço do kernel?

    
por Ivan Novick 01.08.2011 / 22:04

3 respostas

3

Você deve usar o pam. No debian / ubuntu você pode:

apt-get install python-pam

Código simples em python pamtest. py :

Veja o arquivo /usr/share/doc/python-pam/examples/pamtest.py . É muito curto e faz o que você quer.

Para testá-lo, execute:

python /usr/share/doc/python-pam/examples/pamtest.py

Existe também um exemplo em C pamexample.c .

Para testar:

gcc /usr/share/doc/python-pam/examples/pamexample.c -lpam -l pam_misc
./pam_misc theuser
    
por 07.10.2011 / 13:30
3
por 01.08.2011 / 22:14
2

para verificar se as credenciais de um usuário são boas, você pode tentar fazer login como ele:

su - username

Mas ler sobre o PAM pode ser um caminho melhor a longo prazo

    
por 01.08.2011 / 22:16