Vsftpd "553 Could not create file"

Bonjour à tous,

je suis en train de reconfigurer un nouveau serveur et je bute sur un problème avec vsftpd: impossible d’écrire (uploader un fichier) ou de créer un répertoire.

Mon serveur est configuré pour plusieurs sites/webmaster (chaque site dans un /home) et je configure mon serveur ftp pour que chaque user soit chrouté dans son /home.

Je soupçonne un problème de droit, les répertoires dans le /home étant à 555 (obligé pour que suexec/suphp s’exécute). Vsftpd semble aussi refuser aussi la connexion si le dossier a des droits différents à 555.

Bref je tourne en rond, et j’avoue un blocage mental sur ces fichus droit d’accès…:slightly_smiling:

“Normalement” un dossier dans /home doit avoir quel droit ?

uname-a: Linux sd-47715 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
ps: oui j’ai fait les mises à jours

755

à qui appartient le répertoire en question?qui upload ou veut créer un fichier?quels sont les droits sur le répertoire en question?

Peu importe à qui le répertoire appartient : avec des permissions à 555 (r-xr-xr-x), personne à part root ne peut écrire, pas même le propriétaire.

Pourquoi root peut écrire alors que l’on ne lui attribue pas de w(rite)?

Parce que sous Linux root (uid=0) ignore les permissions. Ce n’est pas forcément le cas de tous les Unix.

merci pour vos réponses.

Si je passe mon répertoire utilisateur de test en 755 je ne peux plus m’y logger en ftp :

Statut : Connexion à 88.xxx.xxx.xxx:21... Statut : Connexion établie, attente du message d'accueil... Réponse : 220 **************** Bienvenue sur la FranckBox ***************** Commande : USER test Réponse : 331 Please specify the password. Commande : PASS ********* Réponse : 500 OOPS: vsftpd: refusing to run with writable root inside chroot() Erreur : Erreur critique Erreur : Impossible d'établir une connexion au serveur
Et si je repasse les droits à 555 je peux me logger:

Statut : Connexion à 88.xxx.xxx.xxx:21... Statut : Connexion établie, attente du message d'accueil... Réponse : 220 **************** Bienvenue sur la FranckBox ***************** Commande : USER test Réponse : 331 Please specify the password. Commande : PASS ********* Réponse : 230 Login successful. Commande : SYST Réponse : 215 UNIX Type: L8 Commande : FEAT Réponse : 211-Features: Réponse : EPRT Réponse : EPSV Réponse : MDTM Réponse : PASV Réponse : REST STREAM Réponse : SIZE Réponse : TVFS Réponse : UTF8 Réponse : 211 End Commande : OPTS UTF8 ON Réponse : 200 Always in UTF8 mode. Statut : Connecté Statut : Récupération du contenu du dossier... Commande : PWD Réponse : 257 "/" Commande : TYPE I Réponse : 200 Switching to Binary mode. Commande : PASV Réponse : 227 Entering Passive Mode (xxxxxxxxxxx). Commande : LIST Réponse : 150 Here comes the directory listing. Réponse : 226 Directory send OK. Commande : PASV Réponse : 227 Entering Passive Mode (xxxxxxxxxx). Commande : LIST -a Réponse : 150 Here comes the directory listing. Réponse : 226 Directory send OK. Statut : Contenu du dossier affiché avec succès
MAIS par contre effectivement impossible d’y uploader un fichier ou de créer un répertoire:

Commande : STOR 02.jpg Réponse : 553 Could not create file. Erreur : Erreur critique lors du transfert du fichier Statut : Création du dossier '/houbahouba'... Commande : MKD houbahouba Réponse : 550 Create directory operation failed. Statut : Déconnecté du serveur

C’est con… j’avais pas eu le problème sur mon ancien serveur (version précédente de Debian). C’est un bogge de vsftpd ou c’est moi qui m’y prend mal ?

Renforcement des contraintes de sécurité dans la nouvelle version de vsftpd. Plus d’info dans http://bugs.debian.org/656900

ah ok, ça ressemble plus a un bug en fait. J’ai la version 2.3.5 .

Non, ce n’est pas un bug. C’est un changement de comportement avec l’option chroot_local_user dans le but de renforcer la sécurité. Le rapport de bogue que j’ai mentionné était relatif à un manque de publicité de ce changement.
/usr/share/doc/vsftpd/NEWS :

Starting with this version, vsftpd refuses to serve files in dangerous configurations in which the top of the chroot() jail is writable by the user that serves files. You may need to adjust the directory structure or disable the chroot_local_user option. See /usr/share/doc/vsftpd/FAQ.gz for details.

ok, merci, je maîtrise pas bien l’anglais je me contente de ce que le traducteur automatique veux bien me baragouiner :slightly_smiling:

Ben du coup je sais plus que faire, j’aimais bien vsftpd pour sa facilité de configuration et sa réputation de sécurité.

J’ai besoin d’un serveur ftp multi-compte dont chaque compte est bloqué dans son /home, vous me conseillez quoi ?

j’ai trouvé une solution en installant la dernière version de vsftpd (3.0.2) en suivant un petit tuto trouvé sur cette page: http://forum.ubuntu-fr.org/viewtopic.php?pid=13392121.
Maintenant je peux me connecter en ftp avec un dossier en chmod 755, creer un dossier et/ou uploader des fichiers. Le compte est bien “chrooté” dans son /home. Cool :slightly_smiling: