Advertisement
BlackYoup

DelUser postfix

Jul 21st, 2013
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.73 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Made by BlackYoup
  4. # exit codes :
  5. #       0 => ok
  6. #       1 => confirm = No
  7. #       2 => utilisateur n'existe pas
  8.  
  9. MASTER_DB_USER='postfix' # nom d'utilisateur de la base
  10. MASTER_DB_PASSWD='postfix' # mot de passe de l'utilisateur
  11. MASTER_DB_HOST='localhost' # hote mysql
  12. MASTER_DB_NAME='postfix' # nom de la base de donnée
  13. DOMAINE_NAME='domain.com' # nom du domaine
  14. FILE='/usr/script/mails/movemails.sh' # nom du script qui move les mails, préférez un chemin complet /usr/script/mails/movemails.sh par exemple
  15.  
  16. echo "CE SCRIPT EST EXCLUSIVEMENT RESERVE POUR LA SUPPRESSION D'UN UTILISATEUR MAIL"    # on avertit
  17.  
  18. read -p "Compte a supprimer : " delUser     # on demande le compte à supprimer
  19.  
  20. if [ -d "/home/$delUser" ]      # si l'utilisateur existe
  21.     then
  22.         echo "Etes vous sur de vouloir supprimer le compte $delUser ? Les mails seront sauvegardes sous /home/postfix/Maildir/saveEmails/$delUser/trashed/ !"       # on avertit que les mails vont être sauvegardés dans un dossier saveMails
  23.         read -p "Y/N : " confirm        # on demande la confirmation
  24.     else
  25.         echo "Cet utilisateur n'existe pas"     # si l'utilisateur n'existe pas, on quitte le programme avec le code #2
  26.         exit 2
  27. fi
  28.  
  29. if [ $confirm = "Y" ]       # si la confirmation de suppression est Y (yes)
  30.     then
  31.         cd /home/postfix/Maildir/$DOMAINE_NAME/     # on se place donc dans le répertoire ou sont stockés les mails non déplacés par le script
  32.         mv -f "$delUser/new/" "/home/postfix/Maildir/$delUser@$DOMAINE_NAME/new/"   # on déplace les nouveaux mais dans le répertoire des nouveaux mails de l'utilisateur
  33.         mkdir -p "/home/postfix/Maildir/saveMails/$delUser/trashed/"    # on créé le répertoire de sauvegarde au nom de l'utilisateur
  34.         mv -f "/home/postfix/Maildir/$delUser@$DOMAINE_NAME/" "/home/postfix/Maildir/saveMails/$delUser/trashed/"   # on déplace les dossiers à sauvegarder
  35.  
  36.         userdel -r "$delUser"   # on supprime l'utilisateur ainsi que son /home/
  37.         rm -rf "/home/postfix/Maildir/$delUser@$DOMAINE_NAME"   # on supprime le dossier postfix à son nom
  38.         SQL_Query="DELETE FROM comptes WHERE email = '$delUser@$DOMAINE_NAME'"  # on prépare la requète SQL afin de le supprimer de la base
  39.         mysql -u$MASTER_DB_USER -p$MASTER_DB_PASSWD -h$MASTER_DB_HOST -D$MASTER_DB_NAME <<EOF
  40.                 $SQL_Query
  41. EOF     # on se connecte à la base et on éxécute la requète
  42.        
  43.         ###### Mise a jour du script de déplacement des mails ######
  44.         CONTENT=$(head $FILE | grep -n $delUser)    # on recherche la ligne qui contient le pseudo de l'utilisateur
  45.         POS=${CONTENT%%:*}
  46.         parameter="d"
  47.         number=$POS$parameter
  48.         sed  -i -e "$number" $FILE      # on supprime cette ligne
  49.  
  50.         exit 0      # on quitte le programme
  51.     else
  52.         exit 1      # Si l'utilisateur a répondu N (No) alors on quitte le programme avec le code d'erreur #1
  53. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement