Groupe Linagora - OBM Online - Planète - Blogs
Logo Linagora.org
Piste: » Annuaires » Clément OUDOT » Solution Linux 2009 - WebSSO, synchronisation et gestion des accès via LDAP » Emmanuel SEYMAN » Sophie GAUTIER » Vérification du statut de Syncrepl (réplication OpenLDAP) » Le langage SQL » Poste de travail » Sébastien BAHLOUL » Script d'avertissement d'expiration des comptes

Script d'avertissement d'expiration des comptes

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