Я реализовал Наложение Политики паролей на OpenLDAP на Конюшне Debian. Сторона сервера и политики работают как ожидалось. Однако после истечения я не могу вынудить пользователей изменить свои пароли. Пользователь входит в систему, получает сообщение, что их пароль истекает и должен быть сразу изменен. Однако и в локальном входе в систему и во входе в систему SSH, пользователь выгнан. Сторона клиента использует libnss_ldap, pam_ldap. pwdMustChange
, pwdAllowUserChange
оба установлен на true
. Используя passwd
изменить пароли также работает как ожидалось.
/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
Какие-либо идеи?
Я решил проблему. Единственное, что мне нужно было сделать, это добавить new_authtok_reqd=done
в файл общей учетной записи строку LDAP. Итак, результирующий файл выглядит следующим образом и все работает:
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