web-dev-qa-db-ja.com

vsftpd-ファイルが存在する場合でも設定ファイルを読み取れない

Ubuntu 15.04を使用していますが、vsftpdをインストールしました。コマンドservice vsftpd statusを実行すると、次の出力が表示されます。

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.

/etc/vsftpd.confをチェックしましたが、それは存在し、その中に何も問題はありませんでした。どうすれば解決できますか?

5
Guest1997

Ubuntu 16.04でvsftpdを起動しようとしても、同じ症状がありました。私の場合、/etc/vsftpd.confのこの行をコメントアウトするだけで十分です。

listen_ipv6=YES

なぜ私がipv6で動作しないのかはわかりませんが、IP-v6を使用する必要はなく、IP-v6を無効にすることで問題が解決しました。

14
stenix

ステップ1: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

ステップ2:実行中のftpサービスを表示するには

$ lsof -i | grep ftp

ステップ3:xinetdを停止するには

$ Sudo service xinetd stop

ステップ4:xinetdを停止した後、vsftpdサービスを再入力します

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

これはコメントアウトすることで修正できます:

listen_ipv6=yes

そして、私は現在vsftpdで活動しています。

3
user594231

他のいくつかのソリューション(listen_ipv6=NOおよびlisten=YES)に加えて、変更した後にコメントを含めたため、同じエラーで失敗しました。

listen_ipv6=NO  # modified

また、同じstatus=2/INVALIDARGUMENTエラーが発生していました。デーモンを直接実行することでしか理解できませんでした:

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

Systemctl/serviceも/var/log/vsftpd.logも使用されていません。

解決策は、末尾のコメントを削除することでした:

listen_ipv6=NO
0
EoghanM

vsftpdには、rootが所有する/etc/vsftpd.confが必要です。所有者を確認する

ls -la /etc

所有者を変更するには、rootとして、またはSudo経由で次のコマンドを実行します

chown root /etc/vsftpd.conf
0
LikeTheRock

これらのソリューションはどれも私にとってはうまくいきませんでした。 SELinuxを無効にしているので、それは原因ではなく、vsftpdの構成ファイルは100%完璧です。service vstfpd startはすぐに動作しますが、起動時に開始されないだけです。

私の最終的な解決策は、cronで継続的にサービスをチェックして実行するこのbashスクリプトで、現在完全に動作し、起動時にサービスが停止していることを確認して起動することでvsftpを開始します。

#!/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

そして、私のcronは

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