Я хочу настроить только анонимный ftp-сервер (с возможностью загрузки файлов). Вот мой файл конфигурации:
listen=YES
anonymous_enable=YES
anon_root=/var/www/ftp
local_enable=YES
write_enable=YESr.
anon_upload_enable=YES
anon_mkdir_write_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
dirmessage_enable=YES
use_localtime=YES
secure_chroot_dir=/var/run/vsftpd/empty
rsa_cert_file=/etc/ssl/private/vsftpd.pem
pam_service_name=vsftpd
Но когда я пытаюсь его подключить:
kan@kan:~$ ftp yxxxng.bej
Connected to yxxx.
220 (vsFTPd 2.3.5)
Name (yxxxg.bej:kan): anonymous
331 Please specify the password.
Password:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed
Can anyone help ?
либо выполните оба других ответа (понижение версии или снижение безопасности путем отключения проверки)
Другой вариант - фактически решить проблему, имея правильные разрешения для корневой папки chroot.
Qouting хороший пост в блоге, на который Марек уже ссылался
- Добавить более строгие проверки на ошибку конфигурации при запуске с доступным для записи корневым каталогом внутри chroot (). Это может укусить людей, неосторожно включивших chroot_local_user, но такова жизнь.
chrooted корневой каталог доступен для записи пользователем, это больше не разрешено упомянутым обновлением Marek.
Поэтому для его исправления вам потребуется:
Измените права записи корневого корневого каталога
например
chmod a-w /home/user
вынуждая пользователей загружать файлы в подкаталог.
Измените vsftpd на более раннюю версию. Это патч безопасности, представленный в vsftpd 2.3.5.
http://www.benscobie.com/fixing-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/
Ваш write enable
установлен на YESr
вместо того YES
также попробуйте добавить
allow_writeable_chroot=YES
Обычно это помогает
sudo add-apt-repository ppa:thefrontiergroup/vsftpd
sudo apt-get update
sudo apt-get install vsftpd
Уловка для меня заключалась в том, чтобы гарантировать, что 'homedir' не доступен для записи для рассматриваемых пользователей, положил
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
и закомментировать
#chroot_local_user=YES
Не то chroot_local_user
дважды указан в стандартном файле 3.0.3 /etc/vsftpd.conf. Это меня сбило с толку.
Попробуйте в своей конфигурации allow_writeable_chroot = YES или allow_writable_chroot = YES,
если это не сработает, перейдите на более раннюю версию.