web-dev-qa-db-fra.com

vsFTPd a cessé de fonctionner après la mise à jour

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é :)

17
Mr. King

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.

  1. 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.

  2. 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.

11
kristian

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?)

9
lumbric

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

6
Jakob

Pourquoi?

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.

0
Robie Basak

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'.

0
OrangeTux