欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2024-02-06 23:30:04
...
1. Mysql的连接
 [root@localhost ~]# mysql -uroot -pxxxxxx(your mysql password)

2. 建立mysql认证数据库

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虚拟用户

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: 30ulbandwidth: 30dlbandwidth: 50  ipaddress: *    comment:      status: 1    ulratio: 1    dlratio: 11 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。

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      md5MYSQLGetPW      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搭建过程中遇见的问题,及其解决办法。