Я новичок в 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?
Ваш по умолчанию /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