Advertisement
BlackYoup

Adduser Postfix

Jul 21st, 2013
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.57 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Made by BlackYoup
  4. # Last edited : 22/07/12
  5. # Want an english version ? (I doubt about it lol) email me at blackyoupfr@hotmail.fr
  6. # Le packet WHOIS est indispensable pour la commande mkpasswd !!
  7. # apt-get install whois - installeur auto dans le script
  8. # Error codes :
  9. #       0 => ok
  10. #       1 => Pass different
  11. #       2 => abandoné par l'utilisateur
  12. #       3 => demande de l'install du packet WHOIS refusee
  13. # thanks to http://chmod.fr/2012/05/06/debian-script-check_packet_install-sh/ for this little part of (wrong) script that I modified
  14.  
  15. MASTER_DB_USER='postfix' # nom d'utilisateur de la base
  16. MASTER_DB_PASSWD='postfix' # mot de passe de l'utilisateur
  17. MASTER_DB_HOST='localhost' # hote mysql
  18. MASTER_DB_NAME='postfix' # nom de la base de donnée
  19. DOMAINE_NAME='domain.com' # nom du domaine
  20. 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
  21.  
  22. echo "CE SCRIPT EST POUR AJOUTER UN UTILISATEUR MAIL, PAS POUR AJOUTER UN UTILISATEUR NORMAL AU SYSTEME" # on avertit
  23.  
  24. read -p "Veuillez saisir le nom de l'utilisateur a ajouter :" newUser       # Nom du nouvel user
  25. read -p "Veuillez saisir un mot de passe pour le nouvel utilisateur :" newPassword      # password du nouvel user
  26. read -p "Veuillez resaisir le mot de passe pour le nouvel utilisateur :" newPasswordConfirm     # confirmation du passwd
  27.  
  28. if [ $newPassword != $newPasswordConfirm ]      # on check si les pass sont pareils
  29.         then
  30.                 echo "Mots de passes differents"         # s'ils ne le sont pas, on avertit + on exit le programme avec le code d'erreur #1
  31.                 exit 1
  32. fi
  33.  
  34. echo "Est-ce que ces informations sont correctes ?"     # ultime vérification
  35. echo "Login : $newUser"         # affichage du nouveau nom
  36. echo "Paswd : $newPassword"     # affichage du passwd associé
  37.  
  38. read -p "Y/N : " correct        # on demande si c'est OK
  39.  
  40. if [ $correct = "Y" ]   # si Y (yes)
  41.         then
  42.         ### Vérification que le paquet WHOIS est installé ###
  43.         if dpkg -l whois | grep -q ^ii; then
  44.                 echo "Packet WHOIS installe, poursuite";
  45.                 else read -p "Le paquet WHOIS est indispensable pour la commande d'encryption des mots de passe de l'utilateur (mkpasswd), voulez vous l'installer ? Y/N : " confirmInstall
  46.                         if [ $confirmInstall = "Y" ]
  47.                                 then  sudo apt-get --force-yes -y install whois
  48.                         else
  49.                                 exit 3
  50.                         fi
  51.                 fi
  52.  
  53.                 useradd --create-home --comment "$newUser" --password  $(mkpasswd -H md5 $newPassword) "$newUser"      # on ajoute l'user, vérifiez bien que vous possédez le packet WHOIS (pour la commande mkpasswd) !
  54.                 cd /home/postfix/Maildir/        # on se place dans le dossier postfix/Maildir
  55.                 sudo -u vmail maildirmake "$newUser@$DOMAINE_NAME"      # on lui créé son répertoire perso
  56.  
  57.                 SQL_Query="INSERT INTO comptes (email , password , quota , etat , imap , pop3, name, maildir) values ('$newUser@$DOMAINE_NAME', ENCRYPT( '$newPassword' ) , '0', '1', '1', '1', 'Mailbox User', '$newUser@$DOMAINE_NAME')"      # on prépare la requète SQL
  58.  
  59.                 mysql -u$MASTER_DB_USER -p$MASTER_DB_PASSWD -h$MASTER_DB_HOST -D$MASTER_DB_NAME <<EOF
  60.                 $SQL_Query
  61. EOF     # on se connecte à MYSQL et on lui fait éxécuter la requète
  62.  
  63.                 ###### Mise a jour du script de déplacement des mails ######
  64.                 CONTENT=$(head $FILE | grep -n 'chmod')         # On repère la ligne du chmod pour l'enlever
  65.                 POS=${CONTENT%%:*}
  66.                 parameter="d"
  67.                 number=$POS$parameter
  68.                 sed  -i -e "$number" $FILE      # on enleve la ligne
  69.  
  70.                 echo "mv /home/postfix/Maildir/$DOMAINE_NAME/$newUser/new/* /home/postfix/Maildir/$newUser@$DOMAINE_NAME/new/" >> $FILE         # on intègre la nouvelle règle de déplacement
  71.                 echo "chmod -R 777 /home/postfix/Maildir/" >> $FILE     # on remet le CHMOD a la fin histoire que ce soit propre
  72.                 chmod -R 777 /home/postfix/Maildir/     # on éxécute le CHMOD pour que le dossier soit directement manipulable par postfix
  73.                 echo "Utilisateur mail cree: $newUser@$DOMAINE_NAME"    # on avertir que l'utilisateur a été créé
  74.                 exit 0          # on quite le programme
  75.         else
  76.                 exit 2          # Si l'utilisateur a entré N à la vérification, on exit le programme avec le code #1
  77. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement