#!/bin/bash ################################################################################ # Utilitaire pour Pure-FTP # PureFTPadmin v1.0 Feb 05 2003 written by : SkazeR # this script is free software according to the GNU General Public License (see http://www.gnu.org/licenses/gpl.html) ################################################################################ ################################################################################ # Configuration : # adaptez cette ligne selon votre installation PASSWDFILE=/etc/pureftpd.passwd # adaptez selon les parametres que vous avez choisis pour votre serveur (laissez # les guillemets) PUREFTPCONF="/usr/local/sbin/pure-ftpd -B -1 -K -A -c 5 -C 1 -E -r -w -l puredb:/etc/pure-ftpd/pureftpd.pdb &" # Adaptez selon l'UID de l'utilisateur userftp et le GID du groupe ftp groupe # sur votre PC NUMIDDEFTPUSER=501 NUMIDDEFTPGROUP=501 # répertoire chrooté des users créés PATHACCES=/Download/Download/ftp/ #Fin de la configuration ################################################################################ CHOIX=0 clear echo -e "\n\t\t\t***********************\n\t\t\t* Gestion de Pure-FTP *\n\t\t\t***********************\n" while [ $CHOIX != 9 ]; do echo -e "\t\t\tChoix possibles:\n\t\t1: Ajouter un utilisateur virtuel.\n\t\t2: Effacer un utilisateur virtuel.\n\t\t3: Voir les droits d'un utilisateur.\n\t\t4: Lister les utilisateurs.\n\t\t5: Changer le passwd d'un utilisateur.\n\t\t6: Voir les connections actives du serveur.\n\t\t7: Démarrer le serveur.\n\t\t8: Tuer le serveur.\n\t\t9: Quitter.\n\nTapez l'entier correspondant a votre choix:" read CHOIX echo "" case $CHOIX in 1) echo "Entrez le login à ajouter: " read NICK if [ "$NICK" = "" ];then echo -e "Erreur, veuillez indiquer un login!\n" else if [ $NICK = root ];then echo -e "Erreur, veuillez indiquer un login différent de root!\n" else if grep $NICK $PASSWDFILE > /dev/null then echo -e "$NICK a déjà un compte\n" else pure-pw useradd $NICK -u $NUMIDDEFTPUSER -g $NUMIDDEFTPGROUP -d $PATHACCES echo -e "Utilisateur virtuel $NICK ajouté!\n" pure-pw mkdb fi fi fi ;; 2) echo "Entrez le login à effacer: " read NICK if [ "$NICK" = "" ];then echo -e "Erreur, veuillez indiquer un login!\n" else if grep $NICK $PASSWDFILE > /dev/null then pure-pw userdel $NICK echo -e "Utilisateur virtuel $NICK supprimé!\n" pure-pw mkdb else echo -e "L'utilisateur $NICK n'existe pas!\n" fi fi ;; 3) echo "Entrez le login dont vous voulez vérifier les droits: " read NICK if [ "$NICK" = "" ];then echo -e "Erreur, veuillez indiquer un login!\n" else if grep $NICK $PASSWDFILE > /dev/null then pure-pw show $NICK else echo -e "L'utilisateur $NICK n'existe pas!\n" fi fi ;; 4) echo -e "\tLogin\t\t| UID\t| GID\t| path" echo -e "\t----------------+-------+-------+-----------------------" awk 'BEGIN { FS=":" } NF==0{next} {print " "$1 " \| " $3 " \| " $4 " \| " $6}' $PASSWDFILE echo "" ;; 5) echo "Entrez le login dont le passwd doit changer: " read NICK if [ "$NICK" = "" ];then echo -e "Erreur, veuillez indiquer un login!\n" else if grep $NICK $PASSWDFILE > /dev/null then pure-pw passwd $NICK echo -e "Le passwd de $NICK est changé!\n" pure-pw mkdb else echo -e "L'utilisateur $NICK n'existe pas!\n" fi fi ;; 6) pure-ftpwho -v ;; 7) eval $PUREFTPCONF echo -e "Serveur FTP\t\t\t[ON]\n" ;; 8) for VAR in "`ps -A | grep pure-ftpd`"; do if [ pure-ftpd = "`echo $VAR | gawk -F" " '{print $4}'`" ]; then VAR=`echo "$VAR" | gawk -F" " '{print $1}'` kill -9 $VAR fi done; echo -e "Serveur FTP\t\t\t[OFF]\n" ;; 9) clear echo -e "\n\n\n\t\tA bientôt!\n" sleep 2 clear exit ;; *) echo -e "Votre choix n'est pas valide!" CHOIX=0 ;; esac echo "Press " read UNUSED clear done