1. Mysql的鏈接 mysql
[root@localhost ~]# mysql -uroot -pxxxxxx(your mysql password)
2. 創建mysql認證數據庫 sql
mysql>create database pureftpd; mysql>grant privileges all on pureftpd.* to pureftpuser@localhost identified by 'pureftpuser'; mysql>flush privileges; mysql>use pureftpd; Mysql> create table if not exists `users`( `user` varchar(16) not null default '', `password` varchar(32) not null default '', `uid` int(11) not null, `gid` int (11) not null, `dir` varchar(128) not null default '', `quotafiles` int(10) not null default '500', `quotasize` int(10) not null default '30', `ulbandwidth` int(10) not null default '80', `dlbandwidth` int(10) not null default '80', `ipaddress` varchar(15) not null default '*', `comment` tinytext, `status` enum('0','1') not null default '1', `ulratio` smallint(5) not null default '1', `dlratio` smallint(5) not null default '1', primary key (`user`), unique key `user` (`user`) )engine=innodb default charset=utf8; mysql> show tables; +--------------------+ | Tables_in_pureftpd | +--------------------+ | users | +--------------------+ 1 row in set (0.00 sec) mysql> desc users; +-------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------------+------+-----+---------+-------+ | user | varchar(16) | NO | PRI | | | | password | varchar(32) | NO | | | | | uid | int(11) | NO | | NULL | | | gid | int(11) | NO | | NULL | | | dir | varchar(128) | NO | | | | | quotafiles | int(10) | NO | | 500 | | | quotasize | int(10) | NO | | 30 | | | ulbandwidth | int(10) | NO | | 80 | | | dlbandwidth | int(10) | NO | | 80 | | | ipaddress | varchar(15) | NO | | * | | | comment | tinytext | YES | | NULL | | | status | enum('0','1') | NO | | 1 | | | ulratio | smallint(5) | NO | | 1 | | | dlratio | smallint(5) | NO | | 1 | | +-------------+---------------+------+-----+---------+-------+ 14 rows in set (0.15 sec)
3 建立pureftp虛擬用戶 shell
mysql> insert into users values ('bev','pureftpuser','2000','2000','/var/pureftp/bev','500','30','30','50','*','','1','1','1'); mysql> select * from users\G; *************************** 1. row *************************** user: bev password: 5bc915d575ad9c57aa0fc6e1fd719615 uid: 2000 gid: 2000 dir: /var/pureftp/bev quotafiles: 500 quotasize: 30 ulbandwidth: 30 dlbandwidth: 50 ipaddress: * comment: status: 1 ulratio: 1 dlratio: 1 1 row in set (0.11 sec) ERROR: No query specified
4. 注意mysql帳戶密碼的加密方式須要與pureftp支持的機密方式相吻合,否則會出現530錯誤 數據庫
mysql> update users set password=md5('pureftpuser') where user='bev';
我在這裏選擇的MD5加密方式,那麼在下面配置pureftp的加密方式時必定選擇MD5。 ide
5. 修改pureftp關於mysql模塊的配置文檔 測試
[root@localhost ~]# vi /usr/local/pure-ftpd/etc/pure-ftpd.conf # MySQL configuration file (see README.MySQL) MySQLConfigFile /usr/local/pure-ftpd/etc/pureftpd-mysql.conf 保存退出 [root@localhost ~]# vi /usr/local/pure-ftpd/etc/pureftpd-mysql.conf # Optional : define the location of mysql.sock if the server runs on this host. MYSQLSocket /var/lib/mysql/mysql.sock(設置成你的mysql.sock路徑) # Mandatory : user to bind the server as. MYSQLUser pureftpuser # Mandatory : user password. You must have a password. MYSQLPassword pureftpuser # Mandatory : database to open. MYSQLDatabase pureftpd # Mandatory : how passwords are stored # Valid values are : "cleartext", "crypt", "sha1", "md5" and "password" # ("password" = MySQL password() function) # You can also use "any" to try "crypt", "sha1", "md5" *and* "password" MYSQLCrypt md5 MYSQLGetPW SELECT Password FROM users WHERE User='\L' MYSQLGetUID SELECT Uid FROM users WHERE User='\L' MYSQLGetGID SELECT Gid FROM users WHERE User='\L' MYSQLGetDir SELECT Dir FROM users WHERE User='\L' MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User='\L' MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User='\L' MySQLGetRatioUL SELECT ULRatio FROM users WHERE User='\L' MySQLGetRatioDL SELECT DLRatio FROM users WHERE User='\L' MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User='\L' MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User='\L'
6. 重啓pureftp,測試剛剛創建的bev是否生效了。 ui
好了,下篇博客,將簡單總結下pureftp搭建過程當中碰見的問題,及其解決辦法。 this