当前位置: > Linux服务器 > ftp >

FTP服务器之pure-ftpd配置Mysql虚拟ftp账号

时间:2016-04-01 21:36来源:linux.it.net.cn 作者:IT
1.    Mysql的连接      
 
1
<span></span> <span></span>[root@localhost ~]# mysql -uroot -pxxxxxx(your mysql password)<span></span>

2.    建立mysql认证数据库

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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)
<p>
<br>
 
</p>
 
<p>
<br>
 
</p>



3    创建pureftp虚拟用户

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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错误

 
1
mysql> update users set password=md5('pureftpuser') where user='bev';

        我在这里选择的MD5加密方式,那么在下面配置pureftp的加密方式时一定选择MD5。

5.    修改pureftp关于mysql模块的配置文档

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[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是否生效了。

好了,下篇博客,将简单总结下pureftp搭建过程中遇见的问题,及其解决办法。




(责任编辑:IT)
------分隔线----------------------------