Recentemente, tive um problema em que não consegui alterar a senha de uma conta local porque o UID estava dentro da configuração Kerberos minimum_uid
no PAM e usar usermod
para mover o UID abaixo de 1000 resultou em outro erro de manipulação de token.
O utilitário pam-auth-update
resolveu meu problema ao trocar duas linhas dentro de common-password
.
*** common-password.pam-old 2017-11-17 19:18:30.459194260 +0000
--- common-password 2017-11-17 19:18:30.455194330 +0000
***************
*** 22,29 ****
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
! password [success=3 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
! password [success=2 default=ignore] pam_krb5.so minimum_uid=1000
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass
# here's the fallback if no module succeeds
password requisite pam_deny.so
--- 22,29 ----
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
! password [success=3 default=ignore] pam_krb5.so minimum_uid=1000
! password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass
# here's the fallback if no module succeeds
password requisite pam_deny.so
Alguém poderia explicar por que trocar a ordem de linha funcionou ou me indicar uma boa documentação on-line do PAM, o que explicaria isso?
Antes de postar minha pergunta original, eu havia lido várias páginas sobre o PAM ( listadas abaixo ), mas não me lembro de ter visto um exemplo que explicava a lógica de análise das linhas acima. Pareceu-me que, se o primeiro jogo vencer, verificar a presença de uma conta local primeiro com pam_unix.so
parecia um curso de ação lógico. O valor success=3
teria pulado as próximas 3 linhas carregando o módulo pam_permit.so
.
Muito obrigado.
Artigos que encontrei e li: