142 lines
4.7 KiB
Bash
142 lines
4.7 KiB
Bash
|
#!/bin/bash
|
|||
|
################################################################################
|
|||
|
# Utilitaire pour Pure-FTP
|
|||
|
# PureFTPadmin v1.0 Feb 05 2003 written by : SkazeR <skazer_bop@yahoo.fr>
|
|||
|
# 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<6F> des users cr<63><72>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 <20> 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<66>rent de root!\n"
|
|||
|
else
|
|||
|
if grep $NICK $PASSWDFILE > /dev/null
|
|||
|
then
|
|||
|
echo -e "$NICK a d<>j<EFBFBD> un compte\n"
|
|||
|
else
|
|||
|
pure-pw useradd $NICK -u $NUMIDDEFTPUSER -g $NUMIDDEFTPGROUP -d $PATHACCES
|
|||
|
echo -e "Utilisateur virtuel $NICK ajout<75>!\n"
|
|||
|
pure-pw mkdb
|
|||
|
fi
|
|||
|
fi
|
|||
|
fi
|
|||
|
;;
|
|||
|
2)
|
|||
|
echo "Entrez le login <20> 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<69>!\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<6E>!\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<6E>t!\n"
|
|||
|
sleep 2
|
|||
|
clear
|
|||
|
exit
|
|||
|
;;
|
|||
|
*)
|
|||
|
echo -e "Votre choix n'est pas valide!"
|
|||
|
CHOIX=0
|
|||
|
;;
|
|||
|
esac
|
|||
|
|
|||
|
echo "Press <Enter>"
|
|||
|
read UNUSED
|
|||
|
clear
|
|||
|
|
|||
|
done
|