Недавно я настроил FTP-сайт с помощью VSFTPD в Debian, и у меня возникла проблема с невозможностью доступа к загруженным каталогам. Файлы в порядке, но когда я пытаюсь загрузить каталог или перейти в только что загруженный пустой каталог, я получаю следующую ошибку:
Не удалось сменить каталог.
Если я войду через оболочку как и chmod правильные разрешения, я могу получить доступ к каталогу без проблем. Если я войду через оболочку и создаю новый каталог, с этим также не будет проблем, эта проблема, похоже, только для каталогов, загруженных через FTP-клиент.
Любая помощь по этому поводу приветствуется. Я использую Debian 7.5 (Wheezy), а клиент, который я использую для подключения, - это WinSCP из системы Windows 7. Я использую chroot-тюрьму, в которой пользователь помещается в свой домашний каталог (который недоступен для записи).
Думаю, причин может быть две:
Вы входите на FTP-сервер как anonymous
, но загруженные каталоги chown
'ed другому пользователю, и у него есть разрешения 0600
, поэтому они становятся недоступными для ftp
(или другой пользователь, установленный ftp_username
), с которыми анонимные пользователи отображаются vsftpd
демон.
Попробуйте установить в своем vsftpd.conf
:
chown_uploads=YES
chown_upload_mode=0644
chown_username=ftp
Обратите внимание, что вы можете изменить ftp
на что-то другое, если вы уже изменили ftp_username
или guest_username
.
Вы сказали, что загруженные файлы в порядке, но каталоги повреждены. Это заставляет меня думать, что что-то не так с umask
, возможно, он установлен на что-то вроде 011
или 033
что вызывает execute
бит, который нужно отключить, и поэтому вы не можете перечислить каталоги.
Попробуйте исправить это, установив umask
ценности для 022
в vsftpd.conf
:
anon_umask=022
local_umask=022