Isso é um pouco antigo, mas para ajudar os outros, aqui está o que eu encontrei.
minlen
não é apenas um restritor de comprimento de caractere básico, é mais uma pontuação que leva em consideração vários critérios
fonte :
A medida de complexidade minlen é calculada em várias etapas:
- cada caractere em uma senha gera um ponto, independentemente do tipo de caractere
- cada letra minúscula adiciona um ponto, mas somente até o valor de
lcredit
- todas as letras maiúsculas adicionam um ponto, mas apenas até o valor de
ucredit
- cada dígito adiciona um ponto, mas apenas até o valor de
dcredit
- cada caractere especial adiciona um ponto, mas somente até o valor de
ocredit
O que eu estava vendo era um minlen
de 16 permitindo senhas de 8 caracteres enquanto eu recebia 2 pontos por caractere digitado.
Isso também está documentado em man 8 pam_cracklib
:
O tamanho mínimo aceitável para a nova senha (mais um se os créditos não estiverem desativados, que é o padrão). Além do número de caracteres na nova senha, o crédito (de +1 em comprimento) é dado para cada tipo diferente de personagem (outro, superior, inferior e dígito). O padrão para este parâmetro é 9 que é bom para uma senha antiga do UNIX, todos do mesmo tipo de caractere, mas pode ser muito baixa para explorar a segurança adicional de um sistema md5. Observe que há um par de limites de comprimento no Cracklib em si, um limite "muito curto" de 4 que é codificado e um limite definido (6) que será verificado sem referência a minlen. Se você quiser permitir senhas com até 5 caracteres, não use este módulo.