#!/bin/bash
#
## $Id: testmdp.sh 6654 2011-11-27 16:35:54Z dbo $ ##
#
##### Test du changement de mot de passe pour les professeurs #####
# Stephane Boireau, Academie de Rouen
#
# Modification pour test sur n'importe quel groupe : Olivier Lacroix, Académie de Créteil
#Couleurs
COLTITRE="\033[1;35m" # Rose
COLPARTIE="\033[1;34m" # Bleu
COLTXT="\033[0;37m" # Gris
COLCHOIX="\033[1;33m" # Jaune
COLDEFAUT="\033[0;33m" # Brun-jaune
COLSAISIE="\033[1;32m" # Vert
COLCMD="\033[1;37m" # Blanc
COLERREUR="\033[1;31m" # Rouge
COLINFO="\033[0;36m" # Cyan
ERREUR()
{
echo -e "$COLERREUR"
echo "ERREUR!"
echo -e "$1"
echo -e "$COLTXT"
exit 1
}
WWWPATH="/var/www"
## recuperation des variables necessaires pour interoger mysql ###
if [ -e $WWWPATH/se3/includes/config.inc.php ]; then
dbhost=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbhost=" | cut -d = -f 2 | cut -d \" -f 2`
dbname=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbname=" | cut -d = -f 2 | cut -d \" -f 2`
dbuser=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbuser=" | cut -d = -f 2 | cut -d \" -f 2`
dbpass=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbpass=" | cut -d = -f 2 | cut -d \" -f 2`
else
ERREUR "Fichier de configuration inaccessible, le script ne peut se poursuivre."
fi
if [ $# -ne 1 -o "$1" = "--help" -o "$1" = "-h" ]; then
echo "Teste le changement des mots de passe pour les utilisateurs d'un groupe"
echo -e "$COLERREUR\c"
echo -e "$0 a besoin d'un argument pour fonctionner: le nom d'un groupe de l'annuaire"
echo -e "$COLTXT"
echo "ex1 : ./testmdp.sh Profs"
echo "testera les mots de passe du groupe Profs"
echo ""
exit 1
fi
### recuperation des parametres actuels de l'annuaire dans la base ####
BASEDN=`echo "SELECT value FROM params WHERE name=\"ldap_base_dn\"" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N`
TST_GRP=$(ldapsearch -xLLL cn="$1" -b $BASEDN | grep member)
if [ -z "$TST_GRP" ]; then
TST_GRP=$(ldapsearch -xLLL cn="$1" -b $BASEDN)
if [ -z "$TST_GRP" ]; then
ERREUR "Impossible de trouver le groupe ou l'utilisateur passe en parametre dans l'annuaire Ldap"
else
echo "Le groupe est vide."
exit 1
fi
fi
HEURE=$(date|cut -d" " -f5)
ldapsearch -xLLL cn=$1 | grep memberUid | while read A
do
uid=$(echo "$A" | cut -d" " -f2)
date=$(ldapsearch -xLLL uid=$uid | grep "^gecos:" | cut -d"," -f2)
#echo "user : $uid date : $date"
if smbclient -L 127.0.0.1 -U $uid%$date > /dev/null; then
#echo "Le professeur $uid a conserve $date pour mot de passe."
echo "L'utilisateur $uid a conserve sa date de naissance pour mot de passe."
echo "TOUTLEMONDEILNESTPASGENTIL" > /tmp/testmdp.$HEURE
#else
#~ echo "$uid est un bon petit soldat;o), il a bien changé son mot de passe."
fi
done
if [ -e /tmp/testmdp.$HEURE ]; then
rm /tmp/testmdp.$HEURE
else
echo "Tous les membres ont change leur mot de passe initial. Que de bons petits soldats ;-)..."
fi