Différents OS...
Windows
Nous vous proposons d'installer FileZilla Server, disponible à cette adresse.
Installation
Normalement tout se passe bien, il suffit de suivre la procédure. À la partie startup settings, choisir les options comme ci-dessous. Si vous ne voulez pas mettre le serveur en marche automatiquement lorsque la machine démarre, choisir install as service, start manually à la première option.
Une fois l'installation terminée une fenêtre Connect to Server s'affiche. Cochez Always connect to this server et cliquez sur OK. L'interface d'administration s'affiche alors.
Configuration générale du serveur
Allez dans Edit > Settings. Limitez le nombre d'utilisateurs à 2, afin de préserver votre machine, dans le menu general settings. Dans le sous-menu welcome message, vous pouvez taper un message qui s'affichera lorsqu'une personne se connectera à votre serveur. Pour une utilisation ordinaire, vous n'avez pas besoin de modifier les autres paramètres.
Configurer les comptes d'utilisateurs
Allez à Users en cliquant sur l'icône représentant une personne. Nous allons créer un compte utilisateur. Nous expliquons la procédure pour l'utisateur anonymous car c'est celui qui permettra à tout le campus de se connecter sur votre pc. Les autres se font pareillement. Cliquez sur Add dans la sous-rubrique User et tapez anonymous puis cliquez sur OK.
Commencez par régler le nombre de connexions maximales par IP à 1 ou 2 (ou plus si vous êtes généreux). Ensuite allez dans Shared folders et ajoutez tous les répertoires que vous voulez rendre accessibles en cliquant add dans la sous-rubrique Access rights. Une fois un répertoire ajouté il faut fixer les droits. Typiquement cochez read, list et Subdir. Si vous proposez un répertoire pour uploader, cochez aussi write et create pour ce répertoire.
Une fois cela terminé, créez un répertoire vide, ftp par exemple. Ajoutez le répertoire ftp dans la liste des répertoires de Access right avec les mêmes droits et transformez-le en répertoire d'accueil (sélectionnez-le et cliquez sur set as home dir). Ensuite, double-cliquez sur le champ alias de chaque répertoire et indiquez le nom du répertoire ftp créé précédemment suivi du nom sous lequel vous voulez que votre répertoire soit partagé, comme dans l'exemple ci-dessous :
La config de anonymous est terminée. Procédez de même pour en créer d'autres. Pour mettre un mot de passe il suffit de cocher Password et de taper le mot de passe.
Linux
Nous vous proposons d'installer ProFTPd. Il existe une interface graphique (paquet gadmin-proftpd)
Sur Debian : sudo apt-get install proftpd gadmin-proftpd.
Configuration de ProFTPd en mode manuel
Modifier le fichier /etc/proftpd/proftpd.conf et coller cette config (modifier le groupe en rouge si besoin) :
<Anonymous ~ftp>
User ftp
Group pi
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
# Limit the maximum number of anonymous logins
MaxClients 10
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayChdir .message
# Limit WRITE everywhere in the anonymous chroot
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
Include /etc/proftpd/modules.conf
UseIPv6 off
IdentLookups off
ServerName "Debian"
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
DefaultRoot ~
Port 21
MaxInstances 10
<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>
User proftpd
Group nogroup
Umask 022 022
AllowOverwrite on
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
# Include other custom configuration files
Include /etc/proftpd/conf.d/
Configuration du montage
sudo mkdir ~ftp/Garbage
sudo mount --bind DOSSIER_A_PARTAGER ~ftp/Garbage
Pour automatiser le montage au démarrage, modifier le crontab (sudo crontab -e) et y coller les lignes :
# Fais le lien entre le dossier ftp et son contenu sur le disque externe (doit attendre que le disque externe soit monté)
@reboot sleep 30 && mount --bind DOSSIER_A_PARTAGER ~ftp/Garbage