Isso está funcionando conforme o esperado.
success=n
não contribui para o retorno da pilha do módulo. O resultado é que uma autenticação bem-sucedida contra pam_unix.so
retorna falha (porque nada retorna um success
de ok
ou done
) e uma autenticação com falha retorna falha (como esperado, porque pam_exec.so
retornando sucesso neste contexto seria muito ruim).
Tente o seguinte:
auth sufficient pam_unix.so
auth optional pam_exec.so /usr/bin/log_failure
password required pam_unix.so md5
sufficient
significa "pare aqui se tivermos sucesso, caso contrário, continue". Isso deve ter o efeito desejado.
Se / usr / bin / log_failure é um script, a segurança em mim estaria mais inclinada a tentar isso ...
auth sufficient pam_unix.so
auth [default=ignore] pam_exec.so /usr/bin/log_failure
password required pam_unix.so md5
Isso impede que um sucesso retornado por log_failure permita um login.