私はこの質問が何度も尋ねられたことを完全に知っていますが、前述の解決策は私の場合にはうまくいきませんでした。
私の設定:
$ cat /etc/vsftpd-anon.conf
listen=YES
local_enable=NO
anonymous_enable=YES
write_enable=YES
anon_root=/var/anonftp
xferlog_enable=YES
listen_address=10.0.0.2
listen_port=9988
allow_writeable_chroot=YES
ほら、私はホームディレクトリを使っていません。この場合に特に作成したディレクトリが1つあります。 allow_writeable_chroot
オプションも追加し、vsftpdはそれを認識しますが、無視します。
ターゲットディレクトリ:
$ ls -l /var/ | grep anonftp
drwxrwxrwx 3 root root 4096 led 26 11:09 anonftp
使用方法:
$ Sudo killall vsftpd
$ Sudo vsftpd /etc/vsftpd-anon.conf &
[1] 21064
$ ftp 10.0.0.2 9988
Connected to 10.0.0.2.
220 (vsFTPd 3.0.2)
Name (10.0.0.2:david): anonymous
331 Please specify the password.
Password:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
Vsftpd.logに何もない
echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf && service vsftpd restart
を実行します
私は同じ問題を抱えていましたが、何も助けませんでした。ではない:
だから私はvsftpdプロセスを追跡し、次の行を見ました:
... 18825 chdir( "/ usr/share/empty")= 0 18825 chroot( "。")= 0 ...
/ usr/share/emptyのパーミッションを次のように変更した後
chmod 0644 /usr/share/empty
エラーはなくなりました。
echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf && service vsftpd restart
Confを編集するたびに上記のコマンドを実行します。