====== Script d'avertissement d'expiration des comptes ====== {{:contrib:annuaires:extensions:openldaplogomail.png |}} OpenLDAP implémente depuis la version 2.3 la politique des mots de passe. Une des fonctionnalités de celle-ci est de paramétrer une durée de vie maximale pour un mot de passe, ayant pour conséquence de faire expirer les mots de passe trop anciens. Un utilisateur ne peut être averti que son mot de passe va bientôt expirer que si l'application qu'il utilise analyse correctement les contrôles LDAP et affiche l'avertissement à l'utilisateur. Très peu d'applications sont concernées. Nous proposons donc en alternative un script analysant les comptes de l'annuaire et envoyant un mail à l'utilisateur si celui-ci doit être averti. ===== Présentation ===== Ce script shell est destiné à être exécuté automatiquement, par cron par exemple. Il est conseillé de le faire fonctionner quotidiennement, mais sa fréquence doit être adaptée à la politique des mots de passe appliquée (temps de vie du mot de passe et délai d'avertissement). Il nécessite les programmes suivants : * gawk (GNU awk) * ldapsearch * mailx Il a été testé sur GNU/Linux et SunOS 5.8. ===== Usage ===== Le script peut s'exécuter manuellement ou à travers cron. Il ne prend pas d'arguments : sh checkLdapPwdExpiration.sh On peut utiliser STDOUT et STDERR pour isoler les traces du logiciel : sh checkLdapPwdExpiration.sh 1>result.log 2>audit.log Auquel cas les fichiers auront le contenu suivant : * //result.log// --- Statistics --- Users checked: 5 Account expired: 1 Account in warning: 1 * //audit.log// No password policy for coudot Password expired for sbahloul No password change date for tchemineau No password change date for rouazana Mail sent to user farmand (farmand@example.com) ===== Configuration ===== La configuration se situe dans le script shell, en renseignant les variables suivantes : * ''MY_LDAP_HOSTURI'' : URI d'accès à l'annuaire LDAP ; * ''MY_LDAP_ROOTDN'' (optionnel) : DN de connexion à l'annuaire LDAP. La connexion sera anonyme si ce paramètre est commenté ; * ''MY_LDAP_ROOTPW'' : mot de passe de connexion à l'annuaire LDAP ; * ''MY_LDAP_DEFAULTPWDPOLICYDN'' : DN de la politique des mots de passe appliquée par défaut. Si aucune politique n'est appliquéepar défaut, commenter ce paramètre. Dans ce cas, le script n'agira que sur les comptes possédant une politique associée ; * ''MY_LDAP_SEARCHBASE'' : base de recherche des utilisateurs ; * ''MY_LDAP_SEARCHFILTER'' : filtre de recherche des utilisateurs ; * ''MY_LDAP_SEARCHBIN'' : chemin complet vers le binaire ldapsearch. * ''MY_MAIL_DELAY'' : délai pendant lequel l'utilisateur est averti avant l'expiration de son mot de passe. Aucun avertissement n'est envoyé après l'expiration. Si ce paramètre est commenté et que la politique des mots de passe fournit une valeur pour le délai d'avertissement (//pwdExpireWarning//), alors c'est cette dernière qui sera utilisée ; * ''MY_LDAP_NAME_ATTR'' : nom de l'attribut contenant le nom de l'utilisateur ; * ''MY_LDAP_LOGIN_ATTR'' : nom de l'attribut contenant l'identifiant de l'utilisateur ; * ''MY_LDAP_MAIL_ATTR'' : nom de l'attribut contenant le courriel de l'utilisateur ; * ''MY_MAIL_BODY'' : corps du message ; * ''MY_MAIL_SUBJECT'' : sujet du message ; * ''MY_MAIL_BIN'' : binaire utilisé pour envoyer le mail (mailx) ; * ''MY_LOG_HEADER'' : en-tête des lignes de log ; * ''MY_GAWK_BIN'' : chemin complet vers le binaire gawk. ===== Téléchargement ===== {{:contrib:annuaires:extensions:checkldappwdexpiration.sh.zip|Archive ZIP}} Contributeurs : [[::info::authors::coudot]], [[::info::authors::tchemineau]]