[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 # Auteurs: Olivier Lacroix 3 # 4 # Test du changement de mot de passe : Stéphane Boireau 5 # 6 ## $Id: smbweb_open_for_passwd_changed.sh 7061 2012-04-02 09:22:45Z dbo $ ## 7 # 8 ##### script permettant de déléguer smb_web_is_open à ceux qui ont changé leur mot de passe ##### 9 10 #Remarque: 11 # exécution "un peu" longue : 10 minutes pour 1100 utilisateurs 12 13 14 #Couleurs 15 COLTITRE="\033[1;35m" # Rose 16 COLPARTIE="\033[1;34m" # Bleu 17 COLTXT="\033[0;37m" # Gris 18 COLCHOIX="\033[1;33m" # Jaune 19 COLDEFAUT="\033[0;33m" # Brun-jaune 20 COLSAISIE="\033[1;32m" # Vert 21 COLCMD="\033[1;37m" # Blanc 22 COLERREUR="\033[1;31m" # Rouge 23 COLINFO="\033[0;36m" # Cyan 24 25 ERREUR() 26 { 27 echo -e "$COLERREUR" 28 echo "ERREUR!" 29 echo -e "$0 n'a pas besoin d'argument pour fonctionner" 30 echo -e "$COLINFO\c" 31 echo "Exemples :" 32 echo -e "$COLTXT" 33 echo "smbweb_open_for_passwd_changed.sh donne le droit smbweb_is_open à tous les utilisateurs ayant changé leur mot de passe." 34 echo 35 exit 1 36 } 37 38 #teste si 0 argument 39 if [ $# -ne 0 ] ; then 40 ERREUR 41 exit 1 42 fi 43 44 WWWPATH="/var/www" 45 ## recuperation des variables necessaires pour interroger mysql ### 46 if [ -e $WWWPATH/se3/includes/config.inc.php ]; then 47 dbhost=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbhost=" | cut -d = -f2 | cut -d \" -f2` 48 dbname=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbname=" | cut -d = -f 2 |cut -d \" -f 2` 49 dbuser=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbuser=" | cut -d = -f 2 | cut -d \" -f 2` 50 dbpass=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbpass=" | cut -d = -f 2 | cut -d \" -f 2` 51 else 52 echo -e "$COLERREUR" 53 echo "Fichier de configuration mysql inaccessible, le script ne peut se poursuivre." 54 exit 1 55 fi 56 57 #~ ### recuperation des parametres actuels de l'annuaire dans la base #### 58 BASEDN=`echo "SELECT value FROM params WHERE name=\"ldap_base_dn\"" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N` 59 PEOPLERDN=`echo "SELECT value FROM params WHERE name=\"peopleRdn\"" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N` 60 RIGHTSRDN=`echo "SELECT value FROM params WHERE name=\"rightsRdn\"" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N` 61 62 # debut du script proprement dit 63 64 # recupération de l'option dans mysql (1 si ce script est actif) 65 OPTION=`echo "select value from params where name='smbwebopen_pwd_chg'" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N` 66 67 ### on remplit overfill pour les partitions sur lesquelles c'est paramétré #### 68 if [ "$OPTION" != "1" ]; then 69 echo "Le droit smb_web_is_open n est pas lie au changement de mot de passe : a configurer dans Annuaire, Tester les mots de passe... Aucune modification effectuée." 70 exit 71 else 72 # on liste les utilisateurs ayant le droit smbweb_is_open 73 USER_SMBOPEN="`ldapsearch -xLLL cn=smbweb_is_open | grep member | cut -d"," -f1 | cut -d"=" -f2`" 74 75 # on liste tous les utilisateurs, et on examine si leur mot de passe est changé 76 ldapsearch -xLLL uid | grep "$PEOPLERDN" | grep "uid=" | cut -d"," -f1 | cut -d"=" -f2 | while read A 77 do 78 uid=$(echo "$A" | cut -d" " -f2) 79 date=$(ldapsearch -xLLL uid=$uid | grep "^gecos:" | cut -d"," -f2) 80 if [ "$date" == "" ]; then 81 #certains utilisateurs n'ont pas de date de naissance : admin, ... 82 echo "La date de naissance de $uid n'est pas dans l'annuaire, on ne touche pas au droit smbweb_is_open déjà en place" 83 else 84 TEST="$(echo "$USER_SMBOPEN" | grep "^$uid$")" # appartenance de $uid aux membres du droit smbweb_is_open.. 85 if smbclient -L 127.0.0.1 -U $uid%$date > /dev/null ; then 86 if [ "$TEST" == "" ]; then 87 echo "L'utilisateur $uid n'a pas le droit smbweb_is_open, il n'a pas changé son mdp. Tout va bien." 88 else 89 echo -e "$COLERREUR" 90 echo "L'utilisateur $uid a le droit smb_web_is_open et n'a pas changé son mdp: on lui enlève !!!" 91 echo -e "$COLTXT" 92 93 RDn="cn=smbweb_is_open,$RIGHTSRDN,$BASEDN" 94 PersDn="uid=$uid,$PEOPLERDN,$BASEDN" 95 /usr/bin/perl /usr/share/se3/sbin/groupDelEntry.pl "$PersDn" "$RDn" 96 fi 97 else 98 if [ "$TEST" == "" ]; then 99 echo -e "$COLERREUR" 100 echo "L'utilisateur $uid n'a pas le droit smbweb_is_open, il a changé son mdp: on le rajoute dans les membres de smbweb_is_open !!!" 101 echo -e "$COLTXT" 102 103 RDn="cn=smbweb_is_open,$RIGHTSRDN,$BASEDN" 104 PersDn="uid=$uid,$PEOPLERDN,$BASEDN" 105 /usr/bin/perl /usr/share/se3/sbin/groupAddEntry.pl "$PersDn" "$RDn" 106 else 107 echo "L'utilisateur $uid a le droit smbweb_is_open et a changé son mdp. Tout va bien." 108 fi 109 fi 110 fi 111 done 112 fi
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |