Назад | Перейти на главную страницу

Загрузка по FTP имеет неправильные разрешения при использовании vsftpd

Недавно я настроил FTP-сайт с помощью VSFTPD в Debian, и у меня возникла проблема с невозможностью доступа к загруженным каталогам. Файлы в порядке, но когда я пытаюсь загрузить каталог или перейти в только что загруженный пустой каталог, я получаю следующую ошибку:

Не удалось сменить каталог.

Если я войду через оболочку как и chmod правильные разрешения, я могу получить доступ к каталогу без проблем. Если я войду через оболочку и создаю новый каталог, с этим также не будет проблем, эта проблема, похоже, только для каталогов, загруженных через FTP-клиент.

Любая помощь по этому поводу приветствуется. Я использую Debian 7.5 (Wheezy), а клиент, который я использую для подключения, - это WinSCP из системы Windows 7. Я использую chroot-тюрьму, в которой пользователь помещается в свой домашний каталог (который недоступен для записи).

Думаю, причин может быть две:

  1. Вы входите на 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.

  2. Вы сказали, что загруженные файлы в порядке, но каталоги повреждены. Это заставляет меня думать, что что-то не так с umask, возможно, он установлен на что-то вроде 011 или 033 что вызывает execute бит, который нужно отключить, и поэтому вы не можете перечислить каталоги.

    Попробуйте исправить это, установив umask ценности для 022 в vsftpd.conf:

    anon_umask=022
    local_umask=022