Мне нужно развернуть FTP-сервер для использования в интрасети (только анонимно), и я выбрал Vsftpd, который кажется простым в настройке. Вот моя конфигурация:
listen=YES
local_enable=NO
write_enable=YES
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
no_anon_password=YES
anon_root=/srv/ftp/anon
И разрешения для каталогов:
drwxr-xr-x 3 root root 4096 déc. 20 16:00 srv
r-xr-xr-x 3 root root 4096 déc. 20 16:03 ftp
dr-xr-xr-x 2 root root 4096 déc. 20 16:03 anon
С этой конфигурацией я могу подключиться как анонимный и просмотреть / srv / ftp / anon контент, загрузить файлы, но не могу ничего загрузить, создавать папки или удалять файлы (ошибки 530 и 550). Файл журнала vsftpd не такой явный и не помог. Еще пробовал сменить анон на 777,но в результате получается 500 OOPS: vsftpd: отказ от запуска с доступным для записи корнем внутри chroot () , когда я пытался подключиться к серверу.
Спасибо :)
Похоже, что vsftpd пытается перейти в каталог /srv/ftp/anon. В данном случае пытается помешать вам выстрелить себе в ногу, отказываясь туда писать (да, они знают, что делают и зачем).
Поэтому вам лучше установить структуру каталогов, в которой есть каталог только для чтения, а внутри находится каталог, доступный для записи, например. /srv/ftp
будет доступен для записи только пользователю root, и это будет anon_root
. Создайте еще один, скажем, /srv/ftp/public
и chown ftp /srv/ftp/public
(или любому пользователю, использующему vsftp). Я использую еще несколько директив в похожем сценарии:
allow_writeable_chroot=YES
nopriv_user=ftp
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES