Виртуальные пользователи proftpd — пользователи, которые существуют только в конфигурационном файле или базе данных и не являются системными.
С ними требуется минимальная дополнительная настройка, которую и рассмотрим в рамках данного материала.
По умолчанию системные пользователи используются как пользователи proftpd и авторизация возможна с их реквизитами подключения.
Виртуальные пользователи proftpd, как добавить пользователя
В качестве дистрибутива будем использовать Ubuntu.
Установим пакет из репозитория
apt-get install proftpd-basic
Конфигурационные файлы располагаются в каталоге /etc/proftpd, перейдем в него
cd /etc/proftpd
В файл нужно добавить 2 директивы. Первую из них можно просто раскомментировать (строка 34 в файле пакета на момент написания статьи)
mcedit proftpd.conf
DefaultRoot ~
AuthUserFile /etc/proftpd/ftpd.passwd
В файлах /etc/passwd и /etc/groups выясняем идентификатор пользователя и группы. Для www-data это обычно 33.
Выяснить идентификатор можно выполнив grep ИМЯ-ПОЛЬЗВОАТЕЛЯ /etc/passwd и также для /etc/groups
Создаем файл, в котором будут храниться пользователи proftpd.
Дважды вводим пароль, когда он запрашивается. Пароль отображаться не будет.
ftpasswd --uid 33 --gid 33 --name ftpuser --shell /bin/bash --home /var/www/web/ --passwd
ftpasswd: creating passwd entry for user ftpuser
Password:
Re-type password:
ftpasswd: entry created
Создаем файл для proftpd, содержащий группу
ftpasswd --group --name=ftpgroup --gid=33 --member=ftpuser
ftpasswd: creating group entry for group ftpgroup
ftpasswd: entry created
Меняем права на файлы
chmod 400 /etc/proftpd/ftpd.passwd /etc/proftpd/ftpd.group
Устанавливаем пользователя proftpd и группу nogroup на сгененрированные на предыдущем этапе файлы
chown proftpd.nogroup /etc/proftpd/ftpd.passwd /etc/proftpd/ftpd.group
Перезапускаем службу
/etc/init.d/proftpd restart
[ ok ] Restarting proftpd (via systemctl): proftpd.service.
Теперь можно авторизоваться используя FTP клиент (в примере FileZillla, официальный сайт)
Читайте описание процесса настройки proftpd с системными пользователями.