Editar:
Com base no conteúdo da pilha account
fornecida, parece que pam_krb5.so
será ignorado se pam_localuser.so
for bem-sucedido. Essa é a causa mais provável de as restrições de vencimento da senha não serem aplicadas.
Veja o que sabemos até agora:
- As mensagens registradas confirmam que a senha do usuário expirou.
-
O
pam_krb5
é bem-sucedido na autenticação, apesar disso.
Eu suspeito que o seu problema é que você não tem a pilha account
configurada corretamente. Existem algumas implementações diferentes de pam_krb5
lá fora, e nem todas implementam a verificação de envelhecimento da senha dentro da pilha auth
:
When a user logs in, the module's authentication function performs a simple password check and, if possible, obtains Kerberos 5 credentials, caching them for later use. When the application requests initialization of credentials (or opens a session), the usual ticket files are created. When the application subsequently requests deletion of credentials or closing of the session, the module deletes the ticket files. When the application requests account management, if the module did not participate in authenticating the user, it will signal libpam to ignore the module. If the module did participate in authenticating the user, it will check for an expired user password and verify the user's authorization using the .k5login file of the user being authenticated, which is expected to be accessible to the module.
O trabalho da pilha account
é impor políticas de acesso, independentemente de a autenticação ter sido bem-sucedida. Isso é importante, pois a pilha auth
é frequentemente ignorada ao usar a autenticação baseada em chave. Cabe aos desenvolvedores individuais decidir se o envelhecimento da senha também deve resultar em uma falha ao chamar o módulo no contexto auth
.
Por outro lado, a implementação de pam_krb5
mantida por Russ Allbery (a minha preferida) teria captado isso na pilha auth
.
account
Provides an implementation of pam_acct_mgmt(). All it does is do the same authorization check as performed by the pam_authenticate() implementation described above.