[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/sbin/ -> se3_vider_groupe.sh (source)

   1  #!/bin/bash
   2  
   3  # $Id: se3_vider_groupe.sh 7745 2013-03-31 23:53:39Z keyser $
   4  # Script destiné à virer tous les membres d'un groupe
   5  # Auteur: Stéphane Boireau
   6  # Dernière modification: 26/02/2007
   7  
   8  if [ "$1" == "--help" -o "$1" == "-h" ]
   9  then
  10          echo "Script de suppression des membres d'un groupe"
  11          echo "Passer (éventuellement) en paramètre le nom du groupe."
  12          echo "--help cette aide"
  13  
  14          exit
  15  fi
  16  
  17  #Couleurs
  18  COLTITRE="\033[1;35m"   # Rose
  19  COLPARTIE="\033[1;34m"  # Bleu
  20  
  21  COLTXT="\033[0;37m"     # Gris
  22  COLCHOIX="\033[1;33m"   # Jaune
  23  COLDEFAUT="\033[0;33m"  # Brun-jaune
  24  COLSAISIE="\033[1;32m"  # Vert
  25  
  26  COLCMD="\033[1;37m"     # Blanc
  27  
  28  COLERREUR="\033[1;31m"  # Rouge
  29  COLINFO="\033[0;36m"    # Cyan
  30  
  31  echo -e "$COLTITRE"
  32  echo "***************************"
  33  echo "*  SCRIPT DE SUPPRESSION  *"
  34  echo "* DES MEMBRES D'UN GROUPE *"
  35  echo "***************************"
  36  
  37  if [ ! -z "$1" ]; then
  38      groupe=$1
  39  else
  40      echo -e "$COLTXT"
  41      echo "Veuillez saisir le nom du groupe dont vous souhaitez supprimer tous les membres."
  42      echo "Le groupe lui-même ne sera pas supprimé."
  43      echo -e "Groupe: $COLSAISIE\c"
  44      read groupe
  45  fi
  46  
  47  echo -e "$COLTXT"
  48  echo -e "Vous avez choisi le groupe $COLINFO}$groupe"
  49  
  50  BASEDN=$(cat /etc/ldap/ldap.conf | grep '^BASE' | tr "\n" " " | sed -e "s/ \{2,\}/ /g" | cut -d" " -f2)
  51  
  52  test=$(ldapsearch -xLLL -b ou=Groups,$BASEDN cn=$groupe)
  53  if [ -z "$test" ]; then
  54      echo -e "$COLERREUR"
  55      echo "ERREUR: Le groupe choisi n'existe pas."
  56      echo -e "$COLTXT"
  57      exit
  58  fi
  59  
  60  ROOTDN=$(cat /etc/ldap/slapd.conf | grep '^rootdn' | tr '\n' ' ' | cut -d'"' -f2)
  61  PASSDN=$(cat /etc/ldap.secret)
  62  
  63  ladate=$(date +"%Y.%m.%d-%H.%M.%S");
  64  tmp=/root/tmp/nettoyage_groupe_$groupe}_$ladate}
  65  mkdir -p $tmp
  66  
  67  # Sauvegarde:
  68  echo -e "$COLCMD"
  69  #ldapsearch -xLLL -b ou=Groups,$BASEDN cn=$groupe > $tmp/svg_$groupe.ldif
  70  ldapsearch -xLLL -D $ROOTDN -w $PASSDN -b ou=Groups,$BASEDN cn=$groupe > $tmp/svg_$groupe.ldif
  71  
  72  type_grp=$(ldapsearch -xLLL -b ou=Groups,$BASEDN cn=$groupe objectClass | grep "^objectClass: " | sed -e "s/^objectClass: //" | egrep "(groupOfNames|posixGroup)")
  73  if [ "$type_grp" = "posixGroup" ]; then
  74      echo "dn: cn=$groupe,ou=Groups,$BASEDN
  75  changetype: modify
  76  delete: memberUid" > $tmp/vider_$groupe.ldif
  77  else
  78      echo "dn: cn=$groupe,ou=Groups,$BASEDN
  79  changetype: modify
  80  delete: member" > $tmp/vider_$groupe.ldif
  81  fi
  82  
  83  ldapmodify -x -D $ROOTDN -w $PASSDN -f $tmp/vider_$groupe.ldif
  84  
  85  # Nettoyage
  86  #rm -fr $tmp
  87  
  88  echo -e "$COLTITRE"
  89  echo "Terminé"
  90  echo -e "$COLTXT"


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