Não é possível impor mudança de senha no OpenLDAP com a sobreposição de política de senha

1

Eu já implementei a sobreposição de política de senha no OpenLDAP no Debian Stable. O lado do servidor e as políticas estão funcionando conforme o esperado. No entanto, após a expiração, não posso forçar os usuários a alterarem suas senhas. O usuário efetua login, recebe uma mensagem informando que sua senha está expirada e deve ser alterada imediatamente. No entanto, tanto no login local quanto no login SSH, o usuário é expulso. O lado do cliente está usando libnss_ldap, pam_ldap. pwdMustChange , pwdAllowUserChange está definido como true . Usar passwd para alterar as senhas também está funcionando conforme o esperado.

Arquivos de configuração do lado do cliente

/etc/nsswitch.conf:

passwd:         files ldap
group:          files ldap
shadow:         files 

/etc/pam.d/common-account:

account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 default=ignore] pam_ldap.so
account requisite pam_deny.so
account required pam_permit.so

/etc/pam.d/common-auth:

auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so

/etc/pam.d/common-password:

password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so try_first_pass

/etc/pam.d/common-password:

session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_mkhomedir.so umask=0022 skel=/etc/skel
session required pam_unix.so 
session optional pam_ldap.so

/etc/libnss-ldap.conf:

base dc=testldap,dc=example,dc=com
uri ldap://192.168.56.102/
ldap_version 3
pam_lookup_policy yes
pam_password exop

/etc/pam_ldap.conf:

base dc=testldap,dc=example,dc=com
uri ldap://192.168.56.102/
ldap_version 3
pam_lookup_policy yes
pam_password exop

Alguma idéia?

    
por bayindirh 12.03.2015 / 12:55

1 resposta

2

Eu resolvi o problema. A única coisa que eu precisava fazer era adicionar new_authtok_reqd=done da linha LDAP no arquivo de conta comum. Então, o arquivo resultante parece com o seguinte e tudo está funcionando é esperado:

account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 new_authtok_reqd=done default=ignore] pam_ldap.so
account requisite pam_deny.so
account required pam_permit.so
    
por 16.03.2015 / 13:36