Lorsque vous avez beaucoup d'intervenants devant fournir des données [1] sur une machine via FTP, il peut-être contraignant de créer autant d'utilisateurs locaux que de comptes FTP nécessaires ; il est alors interessant d'utiliser les utilisateurs virtuels - ici grâce à ProFTPd.
D'abord, il vous faut bien evidemment disposer de proftpd :
$ sudo -s
Password:
# apt-get install proftpd proftpd-common
Nous allons créer les utilisateurs virtuels du serveur FTP via la commande ftpasswd, dans le fichier /etc/fptd.passwd, dont la syntaxe est proche de celle du fichier /etc/passwd :
# ftpasswd --passwd --name=<login> --uid=<user_id> --gid=<group_id> --home=<ftp_root_path> --shell=/bin/false
Ce qui nous donne par exemple pour l'utilisateur redacteur du site monsite, déposant des fichiers accessibles en écriture par le serveur web (apache, par exemple) :
# cd /etc
# ftpasswd --passwd --name=redacteur --uid=80 --gid=80 --home=/home/sites/monsite --shell=/bin/false
Vous noterez que l'utilisateur se voit interdire l'utilisation du shell ; il nous faut donc éditer notre fichier /etc/shells :
# vi /etc/shells
... et y ajouter l'entrée suivante - si elle n'est pas déjà présente - à la fin du fichier:
/bin/false
Il nous faut maintenant spécifier au démon proftpd que l'on désire utiliser les utilisateurs virtuels précedemment définis ; pour cela, il nous faut éditer le fichier /ect/proftpd.conf :
# vi /etc/proftpd.conf
... et y ajouter la directive suivante:
AuthUserFile /etc/ftpd.passwd [2]
On redemarre le service pour prendre en compte les changements :
# /etc/init.d/proftpd restart
Pour aller plus loin
On peut également gérer le même type d'accès pour les groupes d'utilisateurs, au moyen de la directive AuthGroupFile de ProFTPd. On peut de même passer par MySQL pour stocker en base les accès et les administrer encore plus simplement via phpMyAdmin par exemple, ou mieux, MyFTP Admin (tutoriel ici).