Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Made by BlackYoup
- # exit codes :
- # 0 => ok
- # 1 => confirm = No
- # 2 => utilisateur n'existe pas
- MASTER_DB_USER='postfix' # nom d'utilisateur de la base
- MASTER_DB_PASSWD='postfix' # mot de passe de l'utilisateur
- MASTER_DB_HOST='localhost' # hote mysql
- MASTER_DB_NAME='postfix' # nom de la base de donnée
- DOMAINE_NAME='domain.com' # nom du domaine
- 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
- echo "CE SCRIPT EST EXCLUSIVEMENT RESERVE POUR LA SUPPRESSION D'UN UTILISATEUR MAIL" # on avertit
- read -p "Compte a supprimer : " delUser # on demande le compte à supprimer
- if [ -d "/home/$delUser" ] # si l'utilisateur existe
- then
- 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
- read -p "Y/N : " confirm # on demande la confirmation
- else
- echo "Cet utilisateur n'existe pas" # si l'utilisateur n'existe pas, on quitte le programme avec le code #2
- exit 2
- fi
- if [ $confirm = "Y" ] # si la confirmation de suppression est Y (yes)
- then
- 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
- 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
- mkdir -p "/home/postfix/Maildir/saveMails/$delUser/trashed/" # on créé le répertoire de sauvegarde au nom de l'utilisateur
- mv -f "/home/postfix/Maildir/$delUser@$DOMAINE_NAME/" "/home/postfix/Maildir/saveMails/$delUser/trashed/" # on déplace les dossiers à sauvegarder
- userdel -r "$delUser" # on supprime l'utilisateur ainsi que son /home/
- rm -rf "/home/postfix/Maildir/$delUser@$DOMAINE_NAME" # on supprime le dossier postfix à son nom
- SQL_Query="DELETE FROM comptes WHERE email = '$delUser@$DOMAINE_NAME'" # on prépare la requète SQL afin de le supprimer de la base
- mysql -u$MASTER_DB_USER -p$MASTER_DB_PASSWD -h$MASTER_DB_HOST -D$MASTER_DB_NAME <<EOF
- $SQL_Query
- EOF # on se connecte à la base et on éxécute la requète
- ###### Mise a jour du script de déplacement des mails ######
- CONTENT=$(head $FILE | grep -n $delUser) # on recherche la ligne qui contient le pseudo de l'utilisateur
- POS=${CONTENT%%:*}
- parameter="d"
- number=$POS$parameter
- sed -i -e "$number" $FILE # on supprime cette ligne
- exit 0 # on quitte le programme
- else
- exit 1 # Si l'utilisateur a répondu N (No) alors on quitte le programme avec le code d'erreur #1
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement