Solution 1 :
Réponse complète qui a résolu ma question pour tous les autres qui sont après une procédure pas à pas...
Installer vsftpd
en utilisant ceci comme guide.
- Créer un utilisateur avec
useradd [user_name]
. - Créer le mot de passe de l'utilisateur avec
passwd [user_name]
. (Vous serez invité à spécifier le mot de passe). - Créer un répertoire FTP en
/var/ftp
puis liez-vous au répertoire 'home' que vous souhaitez spécifier pour cet utilisateur avecmount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/
. -
Modifier le répertoire personnel de l'utilisateur avec
usermod -d /var/ftp/custom_name/ user_name
En
/etc/vsftpd/vsftpd.conf
, assurez-vous que tous les éléments suivants sont définis :-- chroot_local_user=OUI
- chroot_list_enable=OUI
- chroot_list_file=/etc/vsftpd.chroot_list
Répertorier uniquement les utilisateurs dans le vsftpd.chroot_list
fichier si vous voulez qu'ils aient un accès complet à n'importe où sur le serveur. En ne les listant pas dans ce fichier, vous dites restreindre tous les vsftpd
utilisateurs vers leur répertoire personnel spécifié.
En d'autres termes (pour référence):-
- signifie que par défaut, TOUS les utilisateurs sont chrootés à l'exception des utilisateurs du fichier...
- chroot_local_user=OUI
- chroot_list_enable=OUI
- signifie que par défaut, SEULS les utilisateurs du fichier sont chrootés...
- chroot_local_user=NON
- chroot_list_enable=OUI
Solution 2 :
Pour moi, cela n'a pas fonctionné même après ce qui précède. Il y avait un local_root déjà défini sur un répertoire, et quoi que je fasse, le répertoire de l'utilisateur n'a pas été emprisonné. Enfin, cela fonctionne après seulement avoir changé
chroot_local_user=OUI
Et la procédure suivante
- vi /etc/vsftpd.conf
- Ajouter la ligne 'user_config_dir=/etc/vsftpd_user_conf' (sans guillemets)
- mkdir /etc/vsftpd_user_conf ;
- cd /etc/vsftpd_user_conf
- vi nom_utilisateur ;
- Entrez la ligne 'local_root=/srv/ftp/user_name'
Juste mes deux cents si quelqu'un d'autre avait le même problème.