Como evitar que os usuários alterem suas senhas para uma das últimas senhas X?

9

Eu tenho um Ubuntu GNOME 15.10 com sistema GNOME 3.18 que eu gostaria de configurar para que os usuários que o usam não possam definir uma nova senha como uma das senhas X anteriores, como isso pode ser alcançado?

Quando eu mudo minha senha, se ela é muito parecida com a minha última, meu sistema não me permite alterá-la para essa senha, seria bom se a resposta também mostrasse como estender isso para que a nova senha possa ser também não é muito parecido com as senhas X registradas anteriormente.

Observação: O histórico das últimas senhas X não deve ser armazenado de maneira não criptografada e insegura; na verdade, elas provavelmente devem ser armazenadas da mesma forma ou de maneira semelhante à maneira como a senha atual é armazenado (como um salgado hash).

Eu usei X para representar o número de senhas (isso pode ser qualquer valor) porque eu quero poder alterar facilmente a quantidade de senhas armazenadas que não podem ser usadas, e também para que outras pessoas possam facilmente responder e usá-lo como quiser, em vez de ter uma resposta que gira em torno de um valor muito definido para X .

Atualização de informações:

Conforme solicitado, aqui está o conteúdo do meu arquivo (excluindo os comentários no topo) /etc/pam.d/common-password :

# here are the per-package modules (the "Primary" block)
password        [success=1 default=ignore]      pam_unix.so obscure sha512
# here's the fallback if no module succeeds
password        requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password        required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
password        optional        pam_gnome_keyring.so
# end of pam-auth-update config
    
por Great Uncle Bulgaria 07.04.2016 / 21:47

1 resposta

15

Você pode configurar o PAM para fazer isso por você. Basta abrir /etc/pam.d/common-password e anexar use_authtok à primeira linha password (aquela que chama o módulo pam_unix) para que pareça com isso:

password    [success=1 default=ignore]  pam_unix.so obscure sha512 use_authtok

Agora adicione esta linha acima da linha modificada anteriormente:

password    required    pam_pwhistory.so  remember=X

em que X é o número de senhas anteriores com as quais você deseja verificar se há uma senha repetida.

Aqui, as senhas X anteriores serão armazenadas em formato de hash no local /etc/security/opasswd

Então você precisa criar o arquivo se e somente se ele não existir e atribuir a permissão 600 ( -rw------- ):

sudo touch /etc/security/opasswd
sudo chmod 600 /etc/security/opasswd
    
por daltonfury42 07.04.2016 / 23:19