On Ubuntu I installed proftpd and proftd-mysql packages.
I add the following tables and the proftpd user to mysql.
CREATE DATABASE `proftpd` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
--
-- Table structure for table 'ftpgroup'
--
CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default '',
gid smallint(6) NOT NULL default '5500',
members varchar(16) NOT NULL default '',
KEY groupname (groupname)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='ProFTP group table';
-- --------------------------------------------------------
--
-- Table structure for table 'ftpuser'
--
CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(30) NOT NULL default '',
passwd varchar(30) NOT NULL default '',
uid smallint(6) NOT NULL default '33',
gid smallint(6) NOT NULL default '5500',
homedir varchar(255) NOT NULL default '',
shell varchar(16) NOT NULL default '/sbin/nologin',
count int(11) NOT NULL default '0',
accessed datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
domain varchar(32) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY userid (userid),
KEY domain (domain)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='ProFTP user table';
INSERT INTO ftpgroup (groupname, gid, members) VALUES
('ftpgroup', 5500, 'ftpuser');
INSERT INTO ftpuser (id, userid, passwd, uid, gid, homedir, shell, count, accessed, modified, domain)
VALUES (1, 'web', 'xxx', 5000, 5500, '/var/www', '/sbin/nologin', 1,
'', '', 'test.com');
INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv,
Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv,
Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv,
Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv,
Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv,
Create_view_priv, Show_view_priv, Create_routine_priv,
Alter_routine_priv, Create_user_priv, ssl_type, max_questions,
max_updates, max_connections, max_user_connections
) VALUES (
'localhost', 'proftpd', PASSWORD( 'xxxx' ) , 'N', 'N', 'N', 'N', 'N',
'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N',
'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '0', '0', '0', '0'
);
INSERT INTO mysql.db (Host, Db, User, Select_priv, Insert_priv,
Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv,
References_priv, Index_priv, Alter_priv, Create_tmp_table_priv,
Lock_tables_priv, Create_view_priv, Show_view_priv, Create_routine_priv,
Alter_routine_priv, Execute_priv
) VALUES (
'localhost', 'proftpd', 'proftpd', 'Y', 'N', 'Y', 'N', 'N', 'N', 'N',
'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N'
);
FLUSH PRIVILEGES;
uncomment and customize /etc/proftpd/sql.conf
SQLUserInfo ftpuser userid passwd uid gid homedir shell SQLGroupInfo ftpgroup groupname gid members
uncomment
Include /etc/proftpd/sql.conf in /etc/proftpd/proftpd.conf