Хранение аккаунтов pure-ftpd в файлах формата puredb (Часть 1)
Pure-ftpd позволяет хранить данные виртуальных аккаунтов в специальных файлах формата puredb, подобном '/etc/passwd'.
Помимо списка самих аккаунтов, данных авторизации и директорий пользователей, файл puredb может содержать такие данные, как индивидуальные квоты, параметры скорости работы с сервером, соотношения download/upload и некоторые другие опции, которые будут рассмотрены далее.
Для включения поддержки puredb в pure-ftpd вам необходимо сконфигурировать сервер следующимобразом:
'--with-peruserlimits' - позволяет задавать ограничения для каждого пользователя;
'--with-throttling' - позволяет установить ограничение скорости работы с ftp для пользователей;
'--with-ratios' - позволяет установить соотношение download/upload для пользователей;
'--with-quotas' - позволяет установить квоту дискового пространства для пользователя;
Перед началом настройки сервера рекомендуется завести системный аккаунт, которому будут принадлежать все директории виртуальных пользователей, чтобы в дальнейшем избежать путаницы с правами.
Создадим группу ftpusers и добавим пользователя ftpusers:
Далее добавим директорию и назначим права на нее для пользователя ftpusers:
'mkdir /home/ftpusers'
'chown ftpusers:ftpusers /home/ftpusers'
Работа с виртуальными аккаунтами происходит в два этапа:
1. Создание файла со списком аккаунтов пользователей и их параметрами (по умолчанию '/etc/pureftpd.passwd'), на этом этапе вы также cможете вносить изменения в список аккаунтов;
2. Создание на основе файла списка бинарного файла,с которым в конечном итоге и будет работать сервер (по умолчанию '/etc/pureftpd.pdb');
Альтернативные значения для passwd-файла и pdb-файла могут быть заданы с помощью переменных окружения 'PURE_PASSWDFILE' и 'PURE_DBFILE' соответственно.
Все операции над аккаунтами будут осуществляться с помощью утилиты 'pure-pw', входящей в пакет pure-ftpd.
Создание файла аккаунтов
Каждая запись файла виртуальных аккаунтов имеет следующий формат:
account:pass:uid:gid:name:dir:ul bw:
dl bw:ul ratio:dl ratio:max con:
files quota:size quota:authorized local IPs:refused
local IPs:authorized client IPs:refused client IPs:time
Рассмотрим значения полей записи:
'account' - имя аккаунта;
'pass'- пароль пользователя в зашифрованном виде;
'uid'- uid пользователя, с правами которого будет работать виртуальный пользователь;
'gid'- gid пользователя, с правами которого будет работать виртуальный пользователь;
'name'- полное имя пользователя аккаунта;
'dir'- директория пользователя аккаунта;
'ul bw'- скорость upload для данного аккаунта;
'dl bw'- скорость download для данного аккаунта;
'ul ratio' - соотношение upload к download;
'dl ratio' - соотношение download к upload;
'max con'- максимальное число одновременных подключений для данного аккаунта;
'files quota' - квота на количество файлов в директории пользователя;
'size quota'- квота на суммарный размер файлов в директории пользователя;
'auth local IPs'- указывает ip адрес интерфейса сервера, на который пользователь может подключаться (при наличии нескольких сетевых интерфейсов на сервере);
'ref local IPs'- указывает ip адрес интерфейса сервера, на который пользователь подключаться не может;
'auth client IPs' - ip адреса, с которых пользователю разрешено подключаться;
'ref client IPs'- ip адреса, с которых пользователя запрещено подключаться;
'time' - временной промежуток, в течение которого пользователь может получать доступ к аккаунту.
Допускается пустое значение всех полей кроме 'account', 'pass', 'uid', 'gid' и 'dir'.