[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/scripts/ -> smbweb_open_for_passwd_changed.sh (source)

   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


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1