Como adicionar etapas adicionais ao login?


8

O que eu gostaria de obter é um programa interativo que é executado antes ou depois de solicitar a senha do usuário, mas não lida com o acesso ao computador, a menos que saia com êxito. Para torná-lo um pouco mais compreensível, aqui está um exemplo:

Gostaria de obter acesso ao meu computador, primeiro escrevendo meu nome de usuário, depois minha senha e, depois disso, respondendo corretamente a uma simples pergunta matemática gerada aleatoriamente.

Para que isso funcione, eu uso o seguinte arquivo de autenticação do sistema:

auth      required  pam_unix.so try_first_pass nullok nodelay
auth      optional  pam_faildelay.so delay=600000
auth      optional  pam_exec.so stdout /home/math
auth      optional  pam_permit.so
auth      required  pam_env.so

O problema é que o programa chamado math não pode manipular as entradas do usuário, pois ele lê automaticamente um EOF do PAM, o que essencialmente o torna inútil. Eu também tentei a seguinte variante da linha questionável, caso em que lê a senha, que também não é o que eu quero:

auth      optional  pam_exec.so stdout expose_authtok /home/math

2
Parece que você deseja codificar seu próprio módulo PAM, mais detalhes no manual do PAM. linux-pam.org/Linux-PAM-html/Linux-PAM_MWG.html
Drav Sloan

Respostas:


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.