It's not that hard, maybe you get little confused.
Here's my command line argument list:
-S 127.0.0.1,21 -p 49152:50174 -B -l mysql:/etc/pure-ftpd/mysql.conf -u 2000 -0 -4 -A -E -H -U 137:027 -Y 3 Pretty self explanatory ... well maybe not but it is documented. You want to change -S to address you use, -u is minimum allowed UID, -U is umask (file:dir), -Y 3 is TLS, -l is authentication. Others are not too important. I use MySQL, I trust pure-ftpd can work with berkdb as well.
My /etc/pure-ftpd/mysql.conf:
Code:
MYSQLSocket /var/run/mysqld/mysqld.sock
MYSQLUser Pure-FTPd
MYSQLPassword *******
MYSQLDatabase *******
MYSQLCrypt MD5
MySQLTransactions On
MYSQLGetPW SELECT `password` FROM `ftp_users` WHERE `user` = '\L'
MYSQLGetDir SELECT `directory` FROM `ftp_users` WHERE `user` = '\L'
MYSQLGetUID SELECT `uid` FROM `ftp_users` WHERE `user` = '\L'
MYSQLGetGID SELECT `gid` FROM `ftp_users` WHERE `user` = '\L'
And table itself looks like this:
Code:
CREATE TABLE ftp_users (
`user` varchar(32) COLLATE utf8_bin NOT NULL,
`password` varchar(80) COLLATE utf8_bin DEFAULT NULL,
`directory` varchar(64) COLLATE utf8_bin NOT NULL,
uid varchar(32) COLLATE utf8_bin NOT NULL,
gid varchar(32) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
When you set this up, you can create FTP users with UID/GID you choose for them accessing directory of your choice and they are forced to use TLS encryption.
Sorry for half-cooked guide but I am too busy to make it step-by-step. So take this as simple hints what you need to do.