[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 ## $Id: deploy_mozilla_tb_final.sh 7420 2012-09-24 22:12:04Z keyser $ ## 3 #### script permettant de ventiler le profil de thunderbird #### 4 5 # Si un profil thunderbird a été crée par un utilisateur, 6 # celui ci sera ignoré par le script. 7 # franck molle 03/2005 8 # le script permet desormais de redeployer les profils sans pour autant ecraser s'ils ont ete modifies par l'utilisateur. 9 # sauf à passer en parametre "force_delete" 10 11 # Modifs Stephane Boireau: 11/03/2006 12 chemin_html="/var/www/se3/tmp" 13 14 #Couleurs 15 # COLTITRE="\033[1;35m" # Rose 16 # COLPARTIE="\033[1;34m" # Bleu 17 # 18 # COLTXT="\033[0;37m" # Gris 19 # COLCHOIX="\033[1;33m" # Jaune 20 # COLDEFAUT="\033[0;33m" # Brun-jaune 21 # COLSAISIE="\033[1;32m" # Vert 22 # 23 # COLCMD="\033[1;37m" # Blanc 24 # 25 # COLERREUR="\033[1;31m" # Rouge 26 # COLINFO="\033[0;36m" # Cyan 27 28 ERREUR() 29 { 30 echo "$COLERREUR" 31 echo "ERREUR!" 32 echo "$1" 33 echo "" 34 exit 1 35 } 36 #echo "Géneration des profils de Mozilla Thunderbird<br>" 37 #echo "<br>" 38 # echo -e "Les profils deja existants seront ignorés" 39 # echo -e "" 40 41 ## $Id: deploy_mozilla_tb_final.sh 7420 2012-09-24 22:12:04Z keyser $ ## 42 43 AIDE() 44 { 45 echo "Permet de déployer les profils Mozilla Thunderbird sans les répertoires personnels" 46 echo "Usage : deploy_mozilla_tb_final.sh option1 option2 option3 option4" 47 echo "option1 et option2 sont obligatoires alors que option3 et option4 sont facultatives" 48 echo "option1 : le nom du groupe des utilisateurs à générer, all pour tous les utilisateurs de l'annuaire" 49 echo "option2 : force_move afin de régénérer les profils existants en sauvegardant, no_move pour ne rien toucher" 50 echo "option3 : nom du serveur pop " 51 echo "option4 : nom du serveur smtp" 52 echo "--help ou -h cette aide" 53 54 } 55 56 if [ "$1" "--help" -o "$1" "-h" -o "$1" "" ] 57 then 58 AIDE 59 fi 60 61 62 if [ -z "$1" ]; then 63 ERREUR "$0 prend au moins en arguments la liste des utilisateurs à générer, all pour tous les homes" 64 fi 65 66 OPTION="$2" 67 68 if [ "$OPTION" != "force_move" -o "$OPTION" "no_move" ] 69 then 70 AIDE 71 fi 72 73 POP_SERVEUR="$3" 74 SMTP_SERVEUR="$4" 75 76 77 WWWPATH="/var/www" 78 LADATE=$(date +%D_%Hh%M | sed -e "s!/!_!g") 79 80 81 if [ -e $WWWPATH/se3/includes/config.inc.php ]; then 82 dbhost=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbhost=" | cut -d = -f 2 |cut -d \" -f 2` 83 dbname=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbname=" | cut -d = -f 2 |cut -d \" -f 2` 84 dbuser=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbuser=" | cut -d = -f 2 |cut -d \" -f 2` 85 dbpass=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbpass=" | cut -d = -f 2 |cut -d \" -f 2` 86 87 else 88 ERREUR "Impossible de trouver $WWWPATH/se3/includes/config.inc.php" 89 fi 90 91 path2UserSkel=`echo "SELECT value FROM params WHERE name='path2UserSkel'" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N` 92 if [ -z "$path2UserSkel" ]; then 93 path2UserSkel="/etc/skel/user" 94 fi 95 lcsIp=`echo "SELECT value FROM params WHERE name='lcsIp'" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N` 96 97 #Seuls les homes deja existants seront complétés 98 # Les compte crees par les utilisateurs seront ignorés 99 CHEMIN_TB_SOURCE="$path2UserSkel}/profil/appdata/Thunderbird" 100 101 if [ "$1" "all" ]; then 102 list=$(ls /home | grep -v netlogon | grep -v templates) 103 else 104 105 106 ### recuperation des parametres actuels de l'annuaire dans la base #### 107 BASEDN=`echo "SELECT value FROM params WHERE name=\"ldap_base_dn\"" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N` 108 109 TST_GRP=$(ldapsearch -xLLL cn=$1 -b $BASEDN | grep member) 110 111 if [ -z "$TST_GRP" ]; then 112 TST_UID=$(ldapsearch -xLLL uid="$1") 113 if [ -z "$TST_UID" ]; then 114 ERREUR "Impossible de trouver le groupe ou l'utilisateur passé en paramètre dans l'annuaire Ldap" 115 else 116 list=$1 117 fi 118 else 119 TST_GRP_POSIX=$(ldapsearch -xLLL "cn=$1" | grep memberUid) 120 if [ -z "$TST_GRP_POSIX" ]; then 121 list=$(ldapsearch -x -LLL cn=$1 -b $BASEDN | grep uid | cut -d " " -f2 | cut -d "=" -f2 | cut -d "," -f1) 122 else 123 list=$(ldapsearch -x -LLL "cn=$1" | grep memberUid | cut -d " " -f2) 124 fi 125 fi 126 127 fi 128 129 # echo "$list" 130 # read 131 132 133 134 135 #====================================================== 136 # Nombre de dossiers à traiter: 137 nbdossiers=$(echo "$list" | wc -l) 138 compteur=1 139 140 mkdir -p $chemin_html 141 chown www-se3 $chemin_html 142 143 echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> 144 <html> 145 <head> 146 <meta http-equiv=\"refresh\" content=\"2\"> 147 <title>Traitement des profils</title> 148 </head> 149 <body> 150 <h1 align=\"center\">Traitement des profils</h1> 151 <p align=\"center\">Le traitement va démarrer...<br></p> 152 </body> 153 </html>" > $chemin_html/recopie_profils_thunderbird.html 154 chmod 755 $chemin_html/recopie_profils_thunderbird.html 155 chown www-se3 $chemin_html/recopie_profils_thunderbird.html 156 #====================================================== 157 158 for user in $list 159 # echo "$list" | while read user 160 # ls /home | grep -v netlogon | grep -v templates | while read user 161 do 162 if [ ! -e /home/$user ]; then 163 echo "" 164 # echo "/home/<A HREF="/annu/people.php?uid=$user">$user</A> n'existe pas" 165 else 166 167 MAIL=$(ldapsearch -xLLL "uid=$user" | grep mail | cut -d " " -f2) 168 PRENOM=$(ldapsearch -xLLL "uid=$user" | grep gecos | cut -d " " -f2) 169 NOM=$(ldapsearch -xLLL "uid=$user" | grep gecos | cut -d " " -f3 | cut -d "," -f1) 170 DOMNAME=$(ldapsearch -xLLL "uid=$user" | grep mail | cut -d " " -f2 | cut -d "@" -f2) 171 172 PREF_JS="/home/$user/profil/appdata/Thunderbird/Profiles/default/prefs.js" 173 if [ -z "$lcsIp" ]; then 174 PREF_JS_TMP="/home/$user/profil/appdata/Thunderbird/Profiles/default/prefs.js.slis" 175 else 176 PREF_JS_TMP="/home/$user/profil/appdata/Thunderbird/Profiles/default/prefs.js.lcs" 177 fi 178 179 CHEMIN_CIBLE="/home/$user/profil/appdata/Thunderbird/Profiles/default" 180 CHEMIN_TB_CIBLE="/home/$user/profil/appdata/Thunderbird" 181 FICHIER_PROFILES="$CHEMIN_TB_CIBLE}/profiles.ini" 182 183 184 185 #echo "<br>" 186 echo "Traitement de <A HREF="/annu/people.php?uid=$user">$user</A> <br>" 187 188 #=================================================== 189 echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> 190 <html> 191 <head> 192 <meta http-equiv=\"refresh\" content=\"2\"> 193 <title>Traitement des profils</title> 194 </head> 195 <body> 196 <h1 align=\"center\">Traitement des profils</h1> 197 <p align=\"center\">Traitement de $user...<br>($compteur/$nbdossiers)</p> 198 </body> 199 </html>" > $chemin_html/recopie_profils_thunderbird.html 200 #=================================================== 201 202 if [ ! -e $CHEMIN_TB_CIBLE ]; then 203 echo "Le profil TB de <A HREF="/annu/people.php?uid=$user">$user</A> n'existe pas, je le crée avec les paramètres :" 204 echo "$MAIL" 205 cp -a $CHEMIN_TB_SOURCE $CHEMIN_TB_CIBLE 206 207 # Personalisation du profil 208 [ -z "$POP_SERVEUR" ] && POP_SERVEUR="$DOMNAME" 209 [ -z "$SMTP_SERVEUR" ]&& SMTP_SERVEUR="$DOMNAME" 210 cat $PREF_JS_TMP \ 211 | sed -e "s/nom_compte_replace@domaine/$MAIL/g" \ 212 | sed -e "s/nom_compte_replace/$user/g" \ 213 | sed -e "s/domaine/$DOMNAME/g" \ 214 | sed -e "s/pop.replace.fr/$POP_SERVEUR/g" \ 215 | sed -e "s/smtp.replace.fr/$SMTP_SERVEUR/g" \ 216 | sed -e "s/votre_nom_replace/$PRENOM\ $NOM/g" \ 217 | sed -e "s/nom_serveur_replace/$lcsIp/g" \ 218 | sed -e "s/login_replace/$user/g" > $PREF_JS 219 ## correction des droits## 220 chown -R $user:admins $CHEMIN_TB_CIBLE > /dev/null 2>&1 221 chmod -R 700 $CHEMIN_TB_CIBLE > /dev/null 2>&1 222 223 224 else 225 echo "Le profil Mozilla Thunderbird existe déjà.<br>" 226 # echo "<br>" 227 #echo "Traitement de <A HREF="/annu/people.php?uid=$user">$user</A> <br>" 228 229 if [ -e $FICHIER_PROFILES ]; then 230 TYPE_PROFILE=$(grep 'Path=Profiles/default' "$FICHIER_PROFILES") 231 if [ ! -z $TYPE_PROFILE ]; then 232 #echo "C un profil type automatique" 233 NB_COMPTES_MAIL=$(ls $CHEMIN_CIBLE/Mail | grep -v "defaultbal" | grep -v "Local Folders") 234 235 if [ -z "$NB_COMPTES_MAIL" ]; then 236 # echo "test 1 passé pas de compte supplémentaire" 237 238 # 239 if [ ! -s $CHEMIN_CIBLE/Mail/defaultbal/Inbox ]; then 240 # echo "le compte est a zero, donc on peut le régénérer" 241 PROFIL_DEL="ok" 242 243 else 244 echo "le profil Thunderbird contient des données.<br>" 245 fi 246 247 else 248 echo "Le profil Thunderbird a été modifié par l'utilisateur.<br>" 249 fi 250 251 252 253 else 254 echo "Le profil Thunderbird est un profil personnel.<br>" 255 fi 256 fi 257 258 if [ "$PROFIL_DEL" "ok" ]; then 259 rm -rf $CHEMIN_TB_CIBLE 260 fi 261 262 if [ "$OPTION" "force_move" -a "$PROFIL_DEL" != "ok" ]; then 263 echo "<font color=red>On écrase le profil existant mais on sauvegarde sur $CHEMIN_TB_CIBLE}_sauve_$LADATE} </font><br>" 264 mv $CHEMIN_TB_CIBLE $CHEMIN_TB_CIBLE}_sauve_$LADATE} 265 fi 266 notifier 267 if [ "$PROFIL_DEL" "ok" -o "$OPTION" "force_move" ]; then 268 echo "Le profil TB de <A HREF="/annu/people.php?uid=$user">$user</A> est régénéré avec les paramètres $MAIL <br>" 269 #echo "" 270 271 cp -a $CHEMIN_TB_SOURCE $CHEMIN_TB_CIBLE 272 273 # Personalisation du profil 274 cat $PREF_JS_TMP \ 275 | sed -e "s/nom_compte_replace@domaine/$MAIL/g" \ 276 | sed -e "s/nom_compte_replace/$user/g" \ 277 | sed -e "s/domaine/$DOMNAME/g" \ 278 | sed -e "s/pop.replace.fr/$DOMNAME/g" \ 279 | sed -e "s/smtp.replace.fr/$DOMNAME/g" \ 280 | sed -e "s/votre_nom_replace/$PRENOM\ $NOM/g" \ 281 | sed -e "s/nom_serveur_replace/$lcsIp/g" \ 282 | sed -e "s/login_replace/$user/g" > $PREF_JS 283 ## correction des droits## 284 chown -R $user:admins $CHEMIN_TB_CIBLE > /dev/null 2>&1 285 chmod -R 700 $CHEMIN_TB_CIBLE > /dev/null 2>&1 286 else 287 echo "Le profil a été conservé en l'état.<br>" 288 fi 289 echo "<br>" 290 fi 291 fi 292 293 #============================================ 294 compteur=$(($compteur+1)) 295 #============================================ 296 done 297 #============================================ 298 echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> 299 <html> 300 <head> 301 <title>Traitement des profils</title> 302 </head> 303 <body> 304 <h1 align=\"center\">Traitement des profils</h1> 305 <p align=\"center\">Traitement terminé!</p> 306 </body> 307 </html>" > $chemin_html/recopie_profils_thunderbird.html 308 #============================================ 309 exit 0 310
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 |