В прошлый раз я упоминал о необходимости настройки FTP сервера для загрузки файлов. В первую очередь это нужно потому, что преимущественно у вас не будет возможности работать напрямую на сервере или копировать файлы с флешки.
Одним из наиболее простых в настройке является PureFTP сервер. К тому же, несмотря на простоту, он имеет достаточно много возможностей, включая работу с базами данных MySQL для хранения списка пользователей и настроек. Но нам эта возможность сегодня не понадобится – при работе на своём сервере проще сделать одного пользователя с доступом ко всем сайтам, а при загрузке файлов на хостинг настройкой сервера займётся его администратор. Поэтому мы рассмотрим хранение списка пользователей в локальной базе данных.
Для начала нужно, подключившись по SSH, установить сам сервер:
sudo apt install -y pure-ftpd
В таком варианте установки, как я уже упоминал, будут добавлены все необходимые для работы пакеты (так называемые зависимости), а после окончания установки сервер будет запущен.
Но после установки нам понадобится небольшая настройка сервера. Для начала поставим более приоритетной аутентификацию через свою базу пользователей и отключим лишние способы:
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pureftpd echo no > /etc/pure-ftpd/conf/PAMAuthentication echo no > /etc/pure-ftpd/conf/UnixAuthentication
Далее разрешим автоматическое создание домашних каталогов для пользователей:
echo yes > /etc/pure-ftpd/conf/CreateHomeDir
Разрешим отображание скрытых файлов (по умолчанию отключено):
echo yes > /etc/pure-ftpd/conf/DisplayDotFiles
Запретим вход анонимным пользователям, на случай, если кто-то случайно обнаружит наш сервер:
echo yes > /etc/pure-ftpd/conf/NoAnonymous
И самый важный момент – нужно изменить минимальный идентификатор пользователя, с которым разрешён вход на сервер. По умолчанию там установлено значение 1000, но, поскольку мы планируем загружать файлы в основном для сайта, есть смысл делать это сразу от пользователя www-data, который по умолчанию имеет UID = 33. И нас с такими параметрами на сервер не пустит. Меняем минимальное значение на нужное нам:
echo 33 > /etc/pure-ftpd/conf/MinUID
Меняем владельца корневого каталога наших сайтов на www-data:
chown -R www-data:www-data /var/www
Основные настройки мы сделали. Теперь добавляем пользователя для работы с ФТП:
pure-pw useradd newftpuser -u www-data -g www-data -d /var/www
После добавления или изменения любого пользователя ФТП надо обновить базу пользователей:
pure-pw mkdb
Последним действием запускаем наш сервер:
service pure-ftpd start
И на всякий случай проверяем его состояние:
service pure-ftpd status
Теперь можно подключаться и загружать файлы для нашего сервера.
Comments: