ActiveDirectory/CheckPasswordAgeNotify
В настоящее время отсутствуют более-менее привычные инструменты уведомления пользователя об истечении пользовательского пароля. Это отдано на откуп локальным администраторам. Я предлагаю свое видение решения проблемы.
Описание проблемы
Доменный пользователь, у которого через N дней заканчивается пароль. Если он пропустит этот срок (болезнь, командировка, праздники, что угодно), зайти в систему без помощи администратора будет проблематично. Хотелось бы, чтобы за M дней до окончания срока пользователю было уведомление о скором истечении срока жизни пароля. Чтобы пользователь не забыл и заблаговременно поменял пароль
Реализация
В разное время я шёл разными путями для уведомления пользователя об этом событии. Предлагаю последний вариант. Небольшой скрипт, который имеет конфиг, где настраивается время за какое нужно уведомлять, адрес (контроллера домена), и вариант использования внутреннего уведомления (просто окно с текстом), либо внешний скрипт где вы сами решите в какой форме и как уведомить пользователя (письмо, сообщение в мессенджер и т.п.)
Установим скрипт
$ su - # apt-get update # apt-get install http://altrepo.ru/local-p10/noarch/RPMS.local-p10/checkpasswordage-2.0-alt1.noarch.rpm
Конфигурационный файл просто и понятен
$ cat /etc/checkPasswordAge.conf [ldap] dchost = dc.test.alt ldap_base = dc=test,dc=alt [time] days = 10 [gui] engine = internal ;engine = external ;external_cmd = /usr/share/doc/checkPasswordAge-2.0/examples/ext_demo_script.sh ;Если указано engine = external ;то требуется указание external_cmd = /path/to/script
Если в домашней папки пользователя есть персональный конфиг т.е. $HOME/checkPasswordAge.conf то будет использоваться он
Любым способом нужно добавить запуск скрипта в автозагрузку, к примеру в /etc/xdg/autostart/
# cp /usr/share/applications/checkPasswordAge.desktop /etc/xdg/autostart/
Теперь при входе доменным пользователем, к которого пароль имеет конечную дату жизни, скрипт будет обращаться к LDAP используя текущий билет Kerberos, получать необходимые данные и выводить сообщение.
При использовании внешнего уведомления вам нужно в конфигурационном файле указать engine=external и путь до вашего скрипта
engine = external external_cmd = /usr/share/doc/checkpasswordage-2.0/examples/ext_demo_script.sh
В скрипт, первым параметром будет передано число дней до окончания срока жизни пароля. Вы можете самостоятельно написать свой обработчик этого события. В пакете есть демонстрационный скрипт для вывода через zenity.
Либо сразу предложить его сменить (при external_cmd = /usr/share/doc/checkpasswordage-2.0/examples/ext_demo_script_adv.sh)
Замечания
- Дата окончания пароля вычисляется из действующей парольной политики для этого пользователя. Это не дата срока действия УЗ