У меня есть аутентификация для Linux, Mac и Windows, висящая на сервере Apple OS X через открытый каталог. Я хочу истекать срок действия паролей для моих пользователей каждые 180 дней, это настроено и работает нормально. Проблема в том, что клиенты, отличные от Mac, особенно пользователи Linux, не имеют никаких указаний на то, что их пароль скоро истечет, пока они не придут через один день, а их пароль просто не работает без какого-либо разъясняющего сообщения об ошибке.
Поэтому я хотел бы создать сценарий для машины, чтобы пользователи получали предупреждение по электронной почте за пару дней до истечения срока действия пароля, а затем еще раз в день истечения срока действия. Однако база данных OD LDAP, похоже, не хранит информацию, как и вывод mkpassdb -dump. Кто-нибудь знает, как получить эту информацию из OD с помощью сценариев или иным образом предупредить пользователей Linux о скором истечении срока действия их паролей?
У нас была точно такая же проблема. Я закончил тем, что написал Perl-скрипт для отправки предупреждения о пароле.
По сути, вам нужно использовать /usr/bin/pwpolicy -getglobalpolicy
и сравните maxMinutesUntilChangePassword
линия против /usr/sbin/mkpassdb -dump <user slot>
и Last password change
линия. Вы можете получить слот пользователя из третьего поля в authAuthority
атрибут в LDAP.
Затем выполняется простой расчет, чтобы сравнить время последней смены пароля с максимальным сроком действия и отправить пользователю электронное письмо, если срок действия пароля истекает.
Редактировать: О Тигре, mkpassdb
не принимает пользовательский слот в качестве аргумента. Вместо этого вы можете посмотреть время смены пароля в базе данных kerberos, используя kadmin.local -q 'getprinc user@DOMAIN.COM'
. Вы также можете получить точное имя участника-пользователя из LDAP.