【IT168 技术文档】
摘要:讲解Unix系统下pureftpd怎么实现用MySQL管理用户。与其它工具的结合可以实现更多应用,只有想不到,没有做不到。
目录:
一、PureFTPd和MySQL的结合
二、pureftpd与其它工具的结合
------------------------------------------------------------------分 割 线-----------------------------------------------------------------
一、PureFTPd和MySQL的结合
自从0.99.1版本开始,PureFTPd就内置了MySQL数据库支持。如果启用了MySQL数据库支持,那么所有的用户信息都可以从mysql数据库中获取。这样就可以用数据库来管理用户了,特别是在用户数量巨多时。
安装了MySQL数据库服务器端(具体安装步骤见我的前作《MySQL基础入门:MySQL简介、安装、配置》http://tech.it168.com/db/m/2006-08-14/200608141308695.shtml)后,我们还需要下面的一些步骤完成mysql的支持。
1、建立用户数据库。
在mysql中建立名字为“pureftpd”的数据库。
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.67-log FreeBSD port: mysql-server-5.0.67_1
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| phpmyadmin |
| test |
+--------------------+
4 rows in set (0.04 sec)
mysql> create database pureftpd;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| phpmyadmin |
| pureftpd |
| test |
+--------------------+
5 rows in set (0.01 sec)
mysql>
2、建立用户表。
Database changed
mysql> CREATE TABLE users (
-> User VARCHAR(16) BINARY NOT NULL,
-> Password VARCHAR(64) BINARY NOT NULL,
-> Uid INT(11) NOT NULL default '-1',
-> Gid INT(11) NOT NULL default '-1',
-> Dir VARCHAR(128) BINARY NOT NULL,
-> PRIMARY KEY (User)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql>
3、添加用户。
Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM users;
+------+----------+------+------+-----------+
| User | Password | Uid | Gid | Dir |
+------+----------+------+------+-----------+
| jack | jack | 2000 | 2000 | /home/ftp |
+------+----------+------+------+-----------+
1 row in set (0.01 sec)
mysql>
如果这时我们用“jack”用户登录FTP,会提示错误。还需要添加 PureFTPd-mysql 文件的支持。
4、添加mysql配置文件。
将配置文件的样例文件复制为配置文件:
修改 mysql 配置文件以适合使用。
将其中的数据库用户名和密码更改为你指定的用户名和密码。
MYSQLUser root
# Mandatory : user password. You must have a password.
MYSQLPassword rootpass
5、开启mysql支持。
MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf //mysql配置文件路径
重启服务器后,就可以用“jack”用户登录了。
注意,要有“/home/ftp”主目录,要不然是无法登录的。
二、pureftpd与其它工具的结合
Pureftpd还可以与LDAP、TLS、PostgreSQL等工具结合,具体的使用方法请参看其它文章。
值得一提的是,与数据库结合的意义在于可以扩展应用。
比如:
- 用php编写前台页面管理用户,让用户自己修改密码。这个可以应用于虚拟主机管理界面中。
- 将用户数据表与论坛或网站的用户数据表整合,可以在论坛或网站中实现 FTP 功能。
- 将用户数据表与邮件服务的用户数据表整合,可以实现邮件系统中的网盘功能,就像163邮箱中的网盘一样。
诸如此类应用,等等。