Souvent, les comptes ftp sont les utilisateurs unix. pour la gestion d'un serveur web qu'on veut mutualiser. ce n'est pas super pratique. l'idéal c'est la gestion par mysql. Ce tuto n'est pas très original, on trouve des équivalents sur plusieurs sites. mais ayant eu à réinstaller un serveur ftp, je pensais trouver cette documentation sur mon blog... et po trouvé. Voila c'est fait.
Bases de données:
La database se nome ftp, l'user 'proftpd'@'localhost' y a accès. Dans le prompt mysql pour créer la base et l'user:
CREATE ftp; GRANT ALL ON ftp.* TO 'proftpd'@'localhost' IDENTIFIED BY 'mot-de-passe'; QUIT
Puis pour créer les tables, télécharger le script sur ce blog.
cd ~ wget http://blog-du-grouik.tinad.fr/public/createtablesftp.sql mysql -u root -p ftp < createtablesftp.sql
Installation
apt-get install proftpd proftpd-mod-mysql
je choisis indépendant, (proftp tournera en permanence et pompera un peu plus de ressources. c'est pas bien vu mon utilisation, mais c'est plus stable et plus simple à configurer.)
addgroup proftpd
Activer le module mysql:
Dans le fichier /etc/proftpd/modules.conf dé-commenter les lignes suivantes:
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
Paramétrage proftpd:
Remplacez le fichier /etc/proftpd/proftpd.conf par celui ci dessous proposé ici:
cd /etc/proftpd mv proftpd.conf proftpd.conf.old wget http://blog-du-grouik.tinad.fr/public/proftpd.conf vi proftpd.conf
Remplacez sdftiluzeioftu!ey par le mot de passe mysql de proftpd dans la ligne SQLConnectInfo ftp@localhost proftpd sdftiluzeioftu!ey
SQLMinUserGID et SQLMinUserUID sont placés à 33 car ça me simplifie la gestion des droits sur les répertoires de les faire tourner comme www-data (qui a l'UID 33).
Mais c'est pas bien, je le conçois, idéalement l'user ftp devrait être le propriétaire des dossiers publics (faisant partie du site) avec des droits en écriture et lecture. tandis que www-data devrait faire partie du groupe de l'user, ce dernier ayant accès en lecture uniquement (sauf dans les répertoires où le site internet a besoin d'écrire).
Une telle organisation pourrait limiter les conséquences de l'exploitation d'une faille dans un script php. mais à gérer site par site, c'est super lourd.
Redémarrer proftpd:
/etc/init.d/proftpd restart
Vous pouvez ajouter des utilisateurs dans la base de données en utilisant phpmyadmin par exemple.

ftp
Derniers commentaires