ActiveDirectory/CheckPasswordAgeNotify: различия между версиями
(Новая страница: «В настоящее время отсутствуют более-менее привычные инструменты уведомления пользователя об истечении пользовательского пароля. Это отдано на откуп локальным администраторам. Я предлагаю свое видение решения проблемы. == Постановка задача == == Реали...») |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
В настоящее время отсутствуют более-менее привычные инструменты уведомления пользователя об истечении пользовательского пароля. Это отдано на откуп локальным администраторам. Я предлагаю свое видение решения проблемы. | В настоящее время отсутствуют более-менее привычные инструменты уведомления пользователя об истечении пользовательского пароля. Это отдано на откуп локальным администраторам. Я предлагаю свое видение решения проблемы. | ||
== | == Описание проблемы == | ||
Доменный пользователь, у которого через 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 | |||
Если в домашней папки пользователя есть персональный конфиг т.е. <tt>$HOME/checkPasswordAge.conf</tt> то будет использоваться он | |||
Любым способом нужно добавить запуск скрипта в автозагрузку, к примеру в <tt>/etc/xdg/autostart/</tt> | |||
# cp /usr/share/applications/checkPasswordAge.desktop /etc/xdg/autostart/ | |||
Теперь при входе доменным пользователем, к которого пароль имеет конечную дату жизни, скрипт будет обращаться к LDAP используя текущий билет Kerberos, получать необходимые данные и выводить сообщение. | |||
[[Файл:Checkpasswordage 1.png|center]] | |||
При использовании внешнего уведомления вам нужно в конфигурационном файле указать engine=external и путь до вашего скрипта | |||
engine = external | |||
external_cmd = /usr/share/doc/checkPasswordAge-2.0/examples/ext_demo_script.sh | |||
В скрипт, первым параметром будет передано число дней до окончания срока жизни пароля. Вы можете самостоятельно написать свой обработчик этого события. В пакете есть демонстрационный скрипт для вывода через zenity. | |||
[[Файл:Checkpasswordage ext 2.png|center]] |
Версия от 10:58, 24 февраля 2025
В настоящее время отсутствуют более-менее привычные инструменты уведомления пользователя об истечении пользовательского пароля. Это отдано на откуп локальным администраторам. Я предлагаю свое видение решения проблемы.
Описание проблемы
Доменный пользователь, у которого через 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.