Je viens de mettre à jour Ubuntu 12.04 LTS (Precise Pangolin) à partir de Ubuntu Server 11.10 (Oneiric Ocelot).
Il a mis à jour mon installation vsFTPd, et il semble que quelque chose ait changé:/J'utilise l'authentification PAM. Qu'est-ce qui aurait pu changer pour causer cela?
En essayant de se connecter au serveur FTP, j'obtiens cette erreur:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
J'ai essayé de le googler, et il a été dit d'ajouter allow_writable_root=YES
au fichier de configuration. Cependant, lorsque j'essaie de le faire et d'essayer de redémarrer vsftpd, il ne peut pas redémarrer. Pourquoi?
Voici comment je l'ai corrigé:
wget http://http.us.debian.org/debian/pool/main/v/vsftpd/vsftpd_3.0.2-3_AMD64.deb -O vsftpd.deb
dpkg -i vsftpd.deb
echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf
service vsftpd reload
Et le tour est joué :)
J'ai également ce problème et je pense que c'est à cause de la nouvelle mise à jour de vsFTPd destinée à renforcer la sécurité. Entre-temps, j'utilise cette solution.
Je chmod le dossier dans lequel mon utilisateur FTP se connecte lorsqu'il se connecte pour la première fois (dossier racine) en l'utilisant dans le terminal: Sudo chmod a-w /home/user
Vous pouvez remplacer /home/user
par le dossier racine de votre utilisateur FTP.
Créez un sous-dossier dans le dossier, soit à l'aide de l'interface graphique, ou si vous ne disposez que d'un terminal, il s'agit de: Sudo mkdir /home/user/newfolder
Vous devriez maintenant pouvoir vous connecter et lire en écriture dans le "nouveau dossier". Vous ne pourrez PAS écrire dans le dossier racine lui-même à partir du client FTP avec chmod a-w, c'est donc la raison du sous-dossier, et vous le pouvez.
Je suppose qu'il y aura une solution dans un avenir pas si long, mais dans l'intervalle, j'espère que cela aidera.
Quelqu'un a rétroporté la fonctionnalité pour ajouter allow_writeable_chroot=YES
de la version 3.0.0 à 2.3.5 (voir cette entrée de blog ).
Pour installer sur Ubuntu 12.04 (Precise Pangolin), exécutez les commandes suivantes en tant que root:
add-apt-repository ppa:thefrontiergroup/vsftpd
apt-get update
apt-get install vsftpd
echo allow_writeable_chroot=YES >> /etc/vsftpd.conf
Notez que il semble y avoir une optionallow_writable_chroot=YES
dans vsftpd-ext - notez le mssing e ! (ou est-ce une faute de frappe dans le blog?)
vsFTPd 3.0.0 ajoute une option de configuration,
allow_writeable_chroot=YES
activer à nouveau le comportement précédent (source: Correction de 500 OOPS: vsFTPd: refus de s'exécuter avec une racine en écriture dans chroot () , commentaire de Brian K. White).
Malheureusement, la version 3.0.0 n'est pas encore fournie par Ubuntu. Dans l'intervalle, rétrogradez une version plus ancienne. Par exemple, j'utilise celui-ci sur Ubuntu 12.04 (Precise Pangolin): http://packages.ubuntu.com/oneiric-updates/vsftpd
Extrait de ma propre réponse dans bug 1065714 .
Afin de garder les versions stables stables, les mises à jour après la publication ne sont prises en compte que dans des circonstances spécifiques. Les détails du processus et des critères requis sont listés ici: https://wiki.ubuntu.com/StableReleaseUpdates#When
Il est donc difficile pour les utilisateurs de la version LTS d’avoir des chroots enregistrables, car le projet en amont de vsftpd a décidé de publier sans cette fonctionnalité au moment de la publication de 12.04. Maintenant que 12.04 est disponible et que le correctif ne répond pas aux critères ci-dessus, je ne pense pas que cela changera pour 12.04. Cependant, notez que le Stable Release Updates Team prend la décision finale à ce sujet et qu’une mise à jour ne leur a pas été proposée.
Si vous souhaitez qu'une version plus récente de vsftpd soit mise à la disposition générale des utilisateurs souhaitant utiliser l'option "allow_writeable_chroot", le référentiel de backports est un lieu approprié pour cela. Avec un backport, les utilisateurs qui le souhaitent peuvent simplement ajouter le référentiel de backports et installer vsftpd à partir de là. Vous pouvez en savoir plus sur les backports et comment en demander un ici: https://wiki.ubuntu.com/UbuntuBackports
Entre-temps, The Frontier Group a aimablement fourni un contrat d'achat d'électricité, décrit dans la réponse de lumbric. Ou vous pouvez utiliser l'une des autres réponses ici qui fonctionne pour vous.
Une autre façon de faire, en tant qu'utilisateur Kristian, est que cela fonctionne: cela a fonctionné pour moi. Le nom d'utilisateur que j'utilise est 'john'. Remplacez-le pour le nom d'utilisateur que vous voulez.
Sudo chmod a-w /home/john
- Supprime la permission à tous les utilisateurs de supprimer ou de modifier un fichier.
Sudo mkdir /home/john/ftp
- Crée un dossier nommé 'ftp' dans le répertoire personnel de l'utilisateur 'john'
Sudo chown -Rv john.john /home/john/ftp
- Change la propriété du répertoire en groupe 'john' et utilisateur 'john'.