Por que o root não é restringido pelo pam

1

Eu tenho as seguintes configurações no arquivo /etc/pam.d/common-password.

password        requisite                       pam_cracklib.so retry=3 lcredit=-1 ucredit=-1 dcredit=-1
password        [success=1 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512
password        requisite                       pam_deny.so
password        required                        pam_permit.so
password        optional        pam_ecryptfs.so

Por que o root pode definir uma senha fraca para outro usuário?

root@kali:~# LANG=C passwd kali
New password: 
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is a palindrome
Retype new password: 
passwd: password updated successfully

Não vejo nenhuma regra de pam que esteja permitindo isso. Estou faltando alguma coisa?

    
por sebelk 10.06.2015 / 01:12

1 resposta

5

Em versões mais recentes (e portadas para o RHEL 6) do PAM, há uma opção para pam_cracklib que você deseja adicionar - enforce_for_root . Isso está desativado por padrão. Basta adicioná-lo a essa linha e lá vai você.

Claro, sem muitas outras restrições (SELinux, por exemplo), o root sempre pode contornar o PAM e definir a senha de outra forma (como gravar diretamente no arquivo apropriado), então considere isso como uma maneira de manter a si mesmo honesto, em vez de uma restrição sólida.

Por que funciona assim, em vez de esperar que a pilha cuide desse tipo de coisa? Eu acho que é apenas uma questão de flexibilidade, especialmente quando os valores de controle PAM eram apenas o simples requerido / requisito / suficiente / opcional - você teria que colocar pam_rootok com um valor de controle de sufficient acima de todos das verificações que o root iria ignorar, mas apenas aquelas. Como a opção para ter sucesso como root está embutida em pam_cracklib , isso não é necessário (supondo que seja permitido permitir que o root pule a verificação, o que aparentemente é, mesmo que não no seu caso).

    
por 10.06.2015 / 01:21