VSFTPD : shell de connexion des utilisateurs

Salut tous !

EDIT : Oubliez la partie en italique, j’ai du mal faire mes tests et cette partie fonctionne comme prévu.

[i]Je suis en train de configurer vsftp sur ma machine, et je rencontre quelques difficultés pour empêcher les utilisateurs de sortir de leur $HOME.

Si j’utilise l’option [mono]chroot_local_user=NO[/mono], les utilisateurs peuvent se connecter et naviguer dans tout le système de fichiers, jusque là tout va bien.
Par contre, lorsque je passe cette option à [mono]chroot_local_user=YES[/mono], je ne peux plus me connecter (erreur 530 “Login incorrect” malgré le fait que le mot de passe soit bon). Est-ce du au fait que le shell de connexion de l’utilisateur ne soit plus accessible (car hors du chroot) ?[/i]

D’ailleurs, comment se fait-il que je puisse connecter un utilisateur sur le serveur FTP uniquement s’il a un shell de connexion valide (un shell de connexion défini sur /bin/false par exemple empêche de connecter un utilisateur) ?

C’est la première fois que je me frotte à un serveur FTP, alors n’hésitez pas à me préciser ce qui vous paraît évident…

Merci d’avance pour votre aide !

vsftpd version 3.0.2-15
vsftpd.conf : paste.isalo.org/182
tests effectués via iceweasel 31.1.0esr-1

[quote=“vv222”]…un shell de connexion défini sur /bin/false par exemple empêche de connecter un utilisateur…[/quote]Je n’utilise pas [mono]VsFTPd[/mono], et voici le contenu du fichier [mono]/etc/shell[/mono] sur ma machine :

[code]michel@debG53SW:~$ cat /etc/shells

/etc/shells: valid login shells

/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
michel@debG53SW:~$ [/code]Donc, sur ma machine, [mono]/bin/false[/mono] ne fait pas partie des shells valides.

=====
Mais sur ta machine serveur [mono]VsFTPd[/mono], est-ce que le shell [mono]/bin/false[/mono] fait bien partie de la liste des shells valides ?

[quote=“Debian WiKi : vsftpd”]…la solution généraliste est de désactiver le shell pour l’utilisateur.

Pour cela on assigne le shell de l’utilisateur vers false, un simple binaire qui renvoie un signal d’erreur :

usermod -s /bin/falseIl faut ensuite ajouter false à la liste des shells :
…[/quote]
Donc, pour rajouter ce shell à la liste des shells valides :echo "/bin/false" >> /etc/shells

=====
NOTE: Dans la page du WiKi VsFTPd de debian la commande proposée pour rajouter [mono]/bin/false[/mono] à la liste des shells valides est : [mono]/bin/false >> /etc/shells[/mono].
Mais je ne suis pas du tout convaincu de l’efficacité de cette ligne de commande.

Voilà le problème :

[code]#chroot_local_user=YES
#chroot_list_enable=YES

(default follows)

#chroot_list_file=/etc/vsftpd.chroot_list[/code]

Décommente et rempli le fichier vsftpd.chroot_list avec les utilisateurs autorisés

MicP : Merci, je vais jeter un œil là-dessus.

vohu : Si je comprends bien la doc du fichier de conf’, les lignes ‘chroot_list_enable’ et ‘chroot_list_file’ ne sont utiles que si je veux exclure des utilisateurs de la politique de chroot, ce que je ne cherche pas à faire dans mon cas.


L’ajout de /bin/false au fichier /etc/shells a bien réglé mon problème.