[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 # 3 ##### Script permettant de changer le domaine mail des utilisateurs dans l'annuaire ldap ##### 4 # 5 # Auteur: Stephane Boireau (Bernay/Pont-Audemer (27)) 6 # 7 ## $Id ## 8 # 9 # Dernière modif: 12/09/2006 10 11 if [ "$1" = "--help" -o "$1" = "-h" ] 12 then 13 echo "Script permettant de changer le domaine mail des utilisateurs" 14 echo "dans l'annuaire LDAP." 15 echo "Usage : Aucune option" 16 echo " Il suffit de répondre aux questions." 17 exit 18 fi 19 20 echo "************************" 21 echo "* Script de correction *" 22 echo "* du domaine mail *" 23 echo "************************" 24 echo "" 25 bon_domaine="" 26 while [ -z "$bon_domaine" ] 27 do 28 echo "" 29 echo "Quel est le nom du domaine mail à mettre en place?" 30 echo -e "Domaine: \c" 31 read bon_domaine 32 33 echo "L'adresse mail de toto sera transformée en toto@$bon_domaine" 34 echo -e "Est-ce correct? (o/n) \c" 35 read REPONSE 36 37 if [ "$REPONSE" != "o" ]; then 38 bon_domaine="" 39 fi 40 done 41 42 echo "" 43 echo "Sauvegarde initiale du LDAP." 44 echo "Le serveur LDAP va être arrêté puis redémarré." 45 echo "Appuyez sur ENTREE pour poursuivre..." 46 read PAUSE 47 48 ladate=$(date +"%Y.%m.%d-%H.%M.%S"); 49 #tmp=/root/tmp/$ladate 50 tmp=/home/_root_tmp_correction_domaine_mail_$ladate} 51 mkdir -p $tmp 52 53 ROOTDN=$(cat /etc/ldap/slapd.conf | grep '^rootdn' | tr '\n' ' ' | cut -d'"' -f2) 54 BASE=$(cat /etc/ldap/ldap.conf | grep '^BASE' | tr "\n" " " | sed -e "s/ \{2,\}/ /g" | cut -d" " -f2) 55 56 ldapsearch -xLLL -D "$ROOTDN" -w "$(cat /etc/ldap.secret)" > $tmp/ldapsearch_$ladate}.ldif 57 58 /etc/init.d/slapd stop 59 sleep 5 60 if ps aux | grep slapd | grep -v grep > /dev/null ;then 61 echo "ERREUR: Le serveur LDAP n'est semble-t-il pas arrêté." 62 echo "Par précaution, le script s'arrête là." 63 exit 64 else 65 echo "LDAP arrêté." 66 fi 67 # Le /var/lib/ldap a tendance à être trop gros pour faire une sauvegarde tar 68 #tar -czf $tmp/var_lib_ldap_${ladate}.tar.gz /var/lib/ldap 69 slapcat > $tmp/slapcat_$ladate}.ldif 70 /etc/init.d/slapd start 71 sleep 5 72 73 if ps aux | grep slapd | grep -v grep > /dev/null ;then 74 echo "LDAP redémarré." 75 else 76 echo "ERREUR: Le serveur LDAP n'est semble-t-il pas redémarré." 77 echo "Par précaution, le script s'arrête là." 78 exit 79 fi 80 81 echo "#!/bin/bash" > $tmp/restaure_ldap.sh 82 echo "/etc/init.d/slapd stop 83 sleep 5 84 if ps aux | grep slapd | grep -v grep > /dev/null ;then 85 echo \"ERREUR: Le serveur LDAP n'est semble-t-il pas arrêté.\" 86 echo \"Par précaution, le script s'arrête là.\" 87 exit 88 else 89 echo \"LDAP arrêté.\" 90 fi 91 cd / 92 tar -xzf $tmp/var_lib_ldap_$ladate}.tar.gz 93 /etc/init.d/slapd start 94 if ps aux | grep slapd | grep -v grep > /dev/null ;then 95 echo \"LDAP redémarré.\" 96 else 97 echo \"ERREUR: Le serveur LDAP n'est semble-t-il pas redémarré.\" 98 echo \"Il faut le redémarrer à la main.\" 99 exit 100 fi" >> $tmp/restaure_ldap.sh 101 102 chmod +x $tmp/restaure_ldap.sh 103 104 echo "" 105 echo "Début des corrections..." 106 ldapsearch -xLLL -b "ou=People,$BASE" uid | grep "^uid: " | sed -e "s/^uid: //" | while read login 107 do 108 if [ "$login" != "ldapadm" -a "$login" != "smbadm" -a "$login" != "samba" -a "$login" != "root" -a "$login" != "admin" ]; then 109 if ! ldapsearch -xLLL uid=$login mail | grep "^mail: $login@$bon_domaine$" > /dev/null; then 110 echo "dn: uid=$login,ou=People,$BASE" > $tmp/modif_email_$login}.ldif 111 echo "changetype: modify" >> $tmp/modif_email_$login}.ldif 112 echo "replace: mail" >> $tmp/modif_email_$login}.ldif 113 echo "mail: $login@$bon_domaine" >> $tmp/modif_email_$login}.ldif 114 echo "" >> $tmp/modif_email_$login}.ldif 115 ldapmodify -x -D "$ROOTDN" -w "$(cat /etc/ldap.secret)" -f $tmp/modif_email_$login}.ldif 116 fi 117 fi 118 done 119 120 echo "Terminé." 121 122 echo "" 123 echo "Pour restaurer le LDAP en cas de problème, lancer:" 124 echo "$tmp/restaure_ldap.sh" 125 echo ""
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 |