Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Made by BlackYoup
- # Last edited : 22/07/12
- # Want an english version ? (I doubt about it lol) email me at blackyoupfr@hotmail.fr
- # Le packet WHOIS est indispensable pour la commande mkpasswd !!
- # apt-get install whois - installeur auto dans le script
- # Error codes :
- # 0 => ok
- # 1 => Pass different
- # 2 => abandoné par l'utilisateur
- # 3 => demande de l'install du packet WHOIS refusee
- # thanks to http://chmod.fr/2012/05/06/debian-script-check_packet_install-sh/ for this little part of (wrong) script that I modified
- 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 POUR AJOUTER UN UTILISATEUR MAIL, PAS POUR AJOUTER UN UTILISATEUR NORMAL AU SYSTEME" # on avertit
- read -p "Veuillez saisir le nom de l'utilisateur a ajouter :" newUser # Nom du nouvel user
- read -p "Veuillez saisir un mot de passe pour le nouvel utilisateur :" newPassword # password du nouvel user
- read -p "Veuillez resaisir le mot de passe pour le nouvel utilisateur :" newPasswordConfirm # confirmation du passwd
- if [ $newPassword != $newPasswordConfirm ] # on check si les pass sont pareils
- then
- echo "Mots de passes differents" # s'ils ne le sont pas, on avertit + on exit le programme avec le code d'erreur #1
- exit 1
- fi
- echo "Est-ce que ces informations sont correctes ?" # ultime vérification
- echo "Login : $newUser" # affichage du nouveau nom
- echo "Paswd : $newPassword" # affichage du passwd associé
- read -p "Y/N : " correct # on demande si c'est OK
- if [ $correct = "Y" ] # si Y (yes)
- then
- ### Vérification que le paquet WHOIS est installé ###
- if dpkg -l whois | grep -q ^ii; then
- echo "Packet WHOIS installe, poursuite";
- 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
- if [ $confirmInstall = "Y" ]
- then sudo apt-get --force-yes -y install whois
- else
- exit 3
- fi
- fi
- 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) !
- cd /home/postfix/Maildir/ # on se place dans le dossier postfix/Maildir
- sudo -u vmail maildirmake "$newUser@$DOMAINE_NAME" # on lui créé son répertoire perso
- 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
- mysql -u$MASTER_DB_USER -p$MASTER_DB_PASSWD -h$MASTER_DB_HOST -D$MASTER_DB_NAME <<EOF
- $SQL_Query
- EOF # on se connecte à MYSQL et on lui fait éxécuter la requète
- ###### Mise a jour du script de déplacement des mails ######
- CONTENT=$(head $FILE | grep -n 'chmod') # On repère la ligne du chmod pour l'enlever
- POS=${CONTENT%%:*}
- parameter="d"
- number=$POS$parameter
- sed -i -e "$number" $FILE # on enleve la ligne
- 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
- echo "chmod -R 777 /home/postfix/Maildir/" >> $FILE # on remet le CHMOD a la fin histoire que ce soit propre
- chmod -R 777 /home/postfix/Maildir/ # on éxécute le CHMOD pour que le dossier soit directement manipulable par postfix
- echo "Utilisateur mail cree: $newUser@$DOMAINE_NAME" # on avertir que l'utilisateur a été créé
- exit 0 # on quite le programme
- else
- exit 2 # Si l'utilisateur a entré N à la vérification, on exit le programme avec le code #1
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement