vsftpd дозволяє використовувати різні конфігураційні файли для різних користувачів. Тобто, є головний конфігураційний файл vsftpd.conf, у якому прописані основні параметри (які мережеві інтерфейси прослуховувати, чи дозволяти анонімні підключення тощо), та додаткові файли $username.conf, у яких можна задати директорію, у яку буде chroot-итися користувач, ім'я локального користувача, від імені якого буде здійснюватися доступ до файлів тощо.
Для того, щоб аутентифікаційна інформація зберігалася у MySQL потрібно встановити pam_mysql (в ubuntu цей пакунок зветься libpam-mysql), додати в vsftpd.conf
"pam_service_name=vsftpd"
створити базу даних у MySQL з необхідними полями
mysql> CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`password` VARCHAR( 50 ) NOT NULL ,
UNIQUE ( `username` )
)
ENGINE = MYISAM ;
та відредагувати /etc/pam.d/vsftpd
auth required pam_mysql.so user=$user passwd=$password host=$host db=$database table=$table usercolumn=$usernamecolumn passwdcolumn=$passwordcolumn crypt=2
account required pam_mysql.so user=$user passwd=$password host=$host db=$database table=$table usercolumn=$usernamecolumn passwdcolumn=$passwordcolumn crypt=2
де $user, $password, $host, $database - це ваші особисті параметри підключення до MySQL, а $table, $usernamecolumn, $passwordcolumn - задані вами імена таблиці та стовпців цієї таблиці.
Можу порекомендувати наступні матеріали:
Стаття з opennet.ru, в якій досить детально розібрані майже всі (а може і всі) параметри конфігураційного файлу vsftpd.conf та дані приклади конфігурацій під різні потреби (мова - російська)
http://www.opennet.ru/base/net/vsftpd_overview.txt.htmlHOWTO з якогось форуму по настроюванню vsftpd, у якому використовують конфігурацію з віртуальними користувачами у MySQL (мова - російська)
http://www.jampo.com.ua/forum/board67/theme2385.htm/page1/