Vous pouvez utiliser le bind
L'option mount permet de mapper/remonter une partie déjà montée de la hiérarchie d'un système de fichiers vers un autre endroit. Disons que vous avez un partage samba avec des vidéos et un second avec une bibliothèque d'images et que vous voulez les offrir en téléchargement FTP en lecture seule.
mkdir -p /var/ftp/Videos /var/ftp/Images
mount --bind /share/Videos /var/ftp/Videos
mount --bind /share/Images /var/ftp/Images
Ensuite, faites en sorte que ces systèmes de fichiers soient en lecture seule :
mount -o remount,ro /var/ftp/Videos
mount -o remount,ro /var/ftp/Images
Les autorisations du système de fichiers restent inchangées, mais tout ce qui se trouve sous Vidéos et Images est désormais en lecture seule. Il est donc peu probable qu'un sous-répertoire avec le nom drwx------
est accessible à l'utilisateur FTP, mais l'utilisateur FTP ne peut pas non plus écrire dans un sous-répertoire ayant pour nom drwxrwxrwx
permissions.
Le bind mount ne prend pas d'options donc pour obtenir un montage en lecture seule il faut un remount et donc je pense que vous ne pouvez pas utiliser fstab pour rendre cela persistant et que vous devez script cela à la place.
Ensuite, configurez le répertoire de téléchargement :
mkdir -p /var/ftp/Upload
chmod 700 /var/ftp/Upload
chown ftp.ftp /var/ftp/Upload
Ensuite, configurez vsftpd correctement pour les téléchargements anonymes et chroot() l'utilisateur FTP anonyme vers /var/ftp. Cela fait un moment que je n'ai pas fait ça, mais c'est approximatif et non testé :
# /etc/vsftpd/vsftpd.conf
listen=YES
#The following directives prevent local users from logging in and enables anonymous access respectively.
local_enable=NO
anonymous_enable=YES
#The following directive enables write access to the ftp server’s filesystem.
write_enable=Yes
anon_upload_enable=Yes
# Sets the root directory for anonymous connections.
anon_root=/var/ftp
Bien sûr, il y a beaucoup d'autres options pertinentes à inclure.