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

Как разрешить vsftpd писать в папку, отличную от `/ files` по умолчанию?

Я новичок в FTP и слежу за это руководство по DigitalOcean.

Все работает отлично, за исключением того, что пользователь (по крайней мере, в FileZilla) не может писать в корень своего /home/user/ftp папка, только /home/user/ftp/files. Попытка создать в корневой папке приводит к:

Команда: PASV Ответ: 227 Переход в пассивный режим (104,131,29,61,191,224).

Команда: STOR asdfa

Отклик: 553 Не удалось создать файл.

Ошибка: критическая ошибка передачи файла

Я сканировал /etc/vsftpd.conf файл для слова files но я нигде не могу найти эту конфигурацию. Раньше я использовал FTP, и, как правило, вы бросаете файлы, и вам не нужно переходить по папкам.

Это chown проблема какая то в Ubuntu?

Можно ли просто разрешить пользователю писать в root, и если да, то как?

Ваш по умолчанию /etc/vsftpd.conf изначально не включает все возможные директивы, которые поддерживает файл конфигурации. Остальное можно найти в man vsftpd.conf.

Ответ на свой вопрос можно найти в самом руководство Ты следуешь:

FTP обычно более безопасен, когда пользователи ограничены определенным каталогом. vsftpd выполняет это с помощью chroot jails. Когда chroot разрешен для локальных пользователей, они по умолчанию ограничены своим домашним каталогом. Однако из-за того, как vsftpd защищает каталог, он не должен быть доступен для записи пользователем. Это нормально для нового пользователя, который должен подключаться только через FTP, но существующему пользователю может потребоваться запись в свою домашнюю папку, если он также имеет доступ к оболочке.

Другими словами, вы создали /home/user/ftp папка, чтобы vsftp мог использовать chroot-тюрьмы без создания домашней папки /home/user/ только для чтения пользователю. Поэтому вы уже применяете передовые методы и не должны беспокоиться об ошибке, поскольку это нормальное и желаемое поведение.

это возможно но категорически не рекомендуется отключать chroot jail.

Если речь идет только о том, чтобы улучшить взаимодействие с пользователем, вы можете попробовать добавить прямо в /home/user/ftp/files после входа в систему путем добавления / изменения директив vsftp.conf:

user_sub_token=$USER
local_root=/home/$USER/ftp/files