Я использую CentOS-ds (на основе серверов каталогов Redhat-DS и 389).
У меня есть настройка LDAP, и я работаю над аутентификацией пользователей (и Sudo, это удобная функция!). даже passwd отлично работает для изменения паролей, хранящихся в Ldap. Однако у меня есть небольшая проблема. Как я могу заставить все мои учетные записи пользователей создавать новый пароль после входа на сервер? я бы сделал это обычным способом:
chage -d 0 username
не похоже, что это ldap-ified. Как я могу заставить людей создавать новые пароли при следующем входе (ssh)? Мне нужно создать учетные записи пользователей, и я действительно не хочу, чтобы люди сохраняли пароли, которые я для них установил.
* изменить - я настроил сервер LDAP на принудительную смену пароля при сбросе пароля. Однако я не могу найти способ «сбросить» пароль, чтобы это сработало. (все, что я могу найти, это просто войти в систему как диспетчер каталогов и сменить пароль) * edit2. Поскольку мы собираемся перевести многие машины на LDAP, как только эта часть будет проработана, я написал сценарий для запуска от имени пользователя root для настройки аутентификации LDAP. Возможно, я что-то здесь упускаю? (отредактированы серверы и основаны.)
#!/bin/sh
#
authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=<server1>,<server2> --ldapbasedn="<basedn>" --update
echo 'sudoers: files ldap' >> /etc/nsswitch.conf
echo 'base <basedn>
timelimit 120
bind_policy soft
bind_timelimit 120
idle_timelimit 3600
uri ldap://<server1>/
uri ldap://<server2>/
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5
sudoers_base ou=SUDOers,<basedn>
' > /etc/ldap.conf
Я нашел решение: в записи LDAP пользователей установитеShadowLastChange = 0
Это заставит пользователя сбросить пароль LDAP. Однако есть еще одна ошибка, вам нужно изменить разрешения (ACL) на сервере LDAP (у меня было одно из значений по умолчанию Allow Self entry modification
на OU = People), чтобы также позволить им изменять цель ShadownLastChange
.
В противном случае они не смогут изменить значение, и оно останется равным нулю, заставляя их повторно вводить свой пароль каждый раз при входе в систему.
@Brian изменение shadowlastchange = 0 на самом деле плохая идея. Большинство клиентов LDAP не предназначены для изменения значения shadowlastchange. Таким образом, вы попадете в бесконечный цикл смены пароля при каждом входе в систему.
какой-то клиент ldap
nss-pam-ldapd - эта функция недавно добавлена в журнал восходящего проекта nss-pam-ldapd: попробуйте обновить атрибут shadowLastChange пользователя при смене пароля (обновление выполняется только в том случае, если атрибут присутствует с самого начала) http://lists.arthurdejong.org/nss-pam-ldapd-commit/2010/msg00302.html
sssd -
Все еще RFE https://bugzilla.redhat.com/show_bug.cgi?id=739312
samba-ldap-tools - отклонено
Попробуйте атрибут passwordMustChange
Если этот атрибут включен, пользователи должны изменить свои пароли при первом входе в каталог или после сброса пароля диспетчером каталогов. Пользователь должен изменить свой пароль, даже если пользовательские пароли отключены. Если для этого атрибута установлено значение off, пароли, назначаемые диспетчером каталогов, не должны соответствовать каким-либо очевидным соглашениям, и их будет трудно обнаружить. По умолчанию этот атрибут отключен.
Обратитесь: -http://www.centos.org/docs/5/html/CDS/ag/8.0/User_Account_Management-Managing_the_Password_Policy.html