web-dev-qa-db-fra.com

vsftpd-ne peut pas lire le fichier de configuration, même si le fichier existe

Je suis sur Ubuntu 15.04 et je viens d'installer vsftpd. Lorsque j'exécute la commande service vsftpd status, j'obtiens le résultat suivant:

vsftpd.service - vsftpd FTP server
  Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor   preset: enabled)
Active: failed (Result: exit-code) since Fri 2015-10-09 19:18:50 IST;  3min 11s ago
Process: 2981 ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf (code=exited, status=2)
Process: 2979 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
Main PID: 2981 (code=exited, status=2)

Oct 09 19:18:50 harshal-Lenovo-B40-70 systemd[1]: Starting vsftpd FTP  server...
Oct 09 19:18:50 harshal-Lenovo-B40-70 systemd[1]: Started vsftpd FTP server.
Oct 09 19:18:50 harshal-Lenovo-B40-70 systemd[1]: vsftpd.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Oct 09 19:18:50 harshal-Lenovo-B40-70 systemd[1]: Unit vsftpd.service entered failed state.
Oct 09 19:18:50 harshal-Lenovo-B40-70 systemd[1]: vsftpd.service failed.

J'ai vérifié /etc/vsftpd.conf, il existe et je n'y ai rien trouvé d'anormal. Comment puis-je résoudre ça?

5
Guest1997

J'ai eu les mêmes symptômes en essayant de démarrer vsftpd sur Ubuntu 16.04. Dans mon cas, il suffisait de commenter cette ligne dans /etc/vsftpd.conf:

listen_ipv6=YES

Je ne sais pas pourquoi je ne travaille pas avec ipv6 pour moi, mais je n'ai pas besoin d'IP-v6 et sa désactivation a résolu le problème dans mon cas.

14
stenix

étape 1: vérifiez le fichier vsftpd.conf

listen=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

Étape 2: Pour voir quel service ftp est en cours d’utilisation

$ lsof -i | grep ftp

étape 3: pour arrêter xinetd

$ Sudo service xinetd stop

Étape 4: Après avoir arrêté xinetd, redémarrez votre service vsftpd en tapant

$ /etc/init.d/vsftpd restart
7
Siva Jack

Cela peut être corrigé en commentant:

listen_ipv6=yes

et je suis maintenant actif sur vsftpd.

3
user594231

En plus de certaines des autres solutions (listen_ipv6=NO et listen=YES), la mienne échouait avec la même erreur car j'avais inclus des commentaires après les éléments que j'avais modifiés:

listen_ipv6=NO  # modified

Cela causait également la même erreur status=2/INVALIDARGUMENT. Ne pouvait le comprendre qu'en exécutant directement le démon:

$ Sudo /usr/sbin/vsftpd /etc/vsftpd.conf 
500 OOPS: bad bool value in config file for: listen_ipv6

Ni systemctl/service, ni /var/log/vsftpd.log n'ont été utilisés.

La solution consistait à supprimer le commentaire de fin:

listen_ipv6=NO
0
EoghanM

vsftpd a besoin que le fichier /etc/vsftpd.conf soit la propriété de root. Vérifiez à qui appartient le

ls -la /etc

Pour changer le propriétaire, exécutez la commande suivante en tant que root ou via Sudo

chown root /etc/vsftpd.conf
0
LikeTheRock

Aucune de ces solutions n'a fonctionné pour moi. J'ai même désactivé SELinux, ce qui n'était pas la cause et le fichier de configuration de vsftpd est parfait à 100%, car service vstfpd start fonctionne instantanément, mais il ne veut tout simplement pas démarrer au démarrage.

Ma solution finale a été ce script bash qui fonctionne avec cron vérifiant continuellement le service et fonctionne parfaitement à présent. Il démarre vsftp au démarrage en vérifiant et en constatant que le service est mort, puis en le démarrant.

#!/bin/bash
service=vsftpd

if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))
then
echo "$service is running!!!"
else
service vsftpd start
fi

Et puis mon cron est

* * * * * Sudo /usr/sbin/startvsftpd.sh
0
MitchellK