Как я настраиваю пользователя FTP с доступом к веб-корню с помощью vsftpd?
Я в настоящее время настраиваю веб-сайт, и я пытаюсь узнать больше о веб-серверах на пути. Я использовал совместно использованных поставщиков услуг хостинга прежде, но на этот раз я хотел бы настроить сервер с нуля с VPS. Я уже установил стек LAMP и установил Wordpress. Все работает до сих пор за исключением обновления Wordpress автоматически, так как это просит доступ FTP.
Поэтому я установил vsftpd
следующим это учебное руководство. Это также работает соответственно.
Проблема состоит в том, что в учебном руководстве, которое имеет пользователь FTP, это выделило каталог файлов (/home/ftp_user/ftp/files
), но я должен предоставить пользовательский доступ к веб-корню (/var/www/html/site
) для Wordpress, выполняющего обновление.
Я пытался иметь local_root
точка к /var/www/html
и я пытался настроить символьную ссылку как это
ln -s /var/www/html /home/ftp_user/ftp/files
но оба пути не работают. Когда я пытаюсь соединиться, говорит это
vsftpd: refusing to run with writable root inside chroot()
Что надлежащий путь состоит в том, чтобы достигнуть этого? Или было бы лучше не использовать /var/www/html
местоположение вообще?
FTP не следует за символьными ссылками на серьезных основаниях. Вместо этого необходимо использовать связывание - монтируются.
# Create mount directory below ftp/files
mkdir /home/ftp_user/ftp/files/www
# Mount
mount -o bind /var/www/html /home/ftp_user/ftp/files/www
Попробуйте, если это работает.
Для создания этого постоянным добавляют это к /etc/fstab
:
/var/www/html /home/ftp_user/ftp/files/www none defaults,bind 0 0
Знайте, что в отличие от символьной ссылки, если Вы удаляете www
- папка Вы удалите все файлы в /var/www/html
также.
Метод, описанный RoVo, работает на меня. Но я думаю, что у меня было 2 проблемы вначале (chroot и символьные ссылки).
Путем добавления allow_writeable_chroot=YES
к vsftpd.conf
файл, это теперь также работает для указания local_root
кому: /var/www/html
Я не уверен, безопасно ли это для добавления allow_writeable_chroot=YES
при установке, но это было упомянуто на нескольких сайтах, например, 1 2
Сделать local_root
работа, я добавил эту строку к /ect/vsftpd.conf
:
user_config_dir=/etc/vsftpd/vsftpd-user-conf
и созданный файл с именем пользователя FTP в папке /etc/vsftpd/vsftpd-user-conf/
с этим содержанием:
local_root=/var/www/html