Pure-FTPd是一个自由和安全的FTP服务器。它没有无用花俏的功能,但侧重于效率和易用性。它提供了简单的命令,以满足需求,为个人用户和托管服务提供商提供独特的实用功能。
该如何引导将帮助您设置Pure-FTPd与MySQL作为用户数据库。还提供了详细的指示来创建用户和测试。
第1步:安装MySQL(如果已经安装,那么跳过这一步)
首先,我们需要使用命令下面的步骤我们的系统上安装MySQL。
# yum install mysql mysql-server
请点击这里了解对mysql安装的详细说明。
第2步:安装Pure-FTPd
使用下面的命令在Linux系统上安装Pure-FTPd。
# yum install pure-ftpd
第3步:创建MySQL用户和数据库
安装Pure-FTPd包后,让我们创建用于存储用户信息的mysql数据库,表和用户。
# mysql -u root -p
Enter password:
mysql> CREATE DATABASE pureftpd;
mysql> GRANT ALL ON pureftpd.* to 'pureftpd'@'localhost' IDENTIFIED BY '_password_';
mysql> FLUSH PRIVILEGES;
mysql> use pureftpd;
mysql> CREATE TABLE `users` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`User` varchar(32) NOT NULL DEFAULT '',
`Password` varchar(64) NOT NULL DEFAULT '',
`Uid` int(3) NOT NULL DEFAULT '500',
`Gid` int(3) NOT NULL DEFAULT '500',
`Dir` varchar(255) NOT NULL DEFAULT '',
`QuotaSize` int(4) NOT NULL DEFAULT '50',
`Status` enum('0','1') NOT NULL DEFAULT '1',
`ULBandwidth` int(2) NOT NULL DEFAULT '100',
`DLBandwidth` int(2) NOT NULL DEFAULT '100',
`Date` date NOT NULL DEFAULT '0000-00-00',
`LastModif` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`ID`),
UNIQUE KEY `User` (`User`),
KEY `Uid` (`Uid`),
KEY `Gid` (`Gid`),
KEY `Dir` (`Dir`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
mysql> quit
第4步:配置Pure-FTPd
我们要配置Pure-FTPd存储在MySQL数据库用户的登录信息。首先编辑Pure-FTPd的主配置文件
# vim /etc/pure-ftpd/pure-ftpd.conf
并进行以下更改。
ChrootEveryone yes
MaxClientsNumber 50
MaxClientsPerIP 2
VerboseLog yes
AnonymousOnly no
NoAnonymous yes
MaxIdleTime 15
MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf
PAMAuthentication no
UnixAuthentication no
在Pure-FTPd配置更改后,让编辑Pure-FTPd mysql的配置文件
# vim /etc/pure-ftpd/pureftpd-mysql.conf
和更新以下变量
MYSQLUser pureftpd
MYSQLPassword _password_
MYSQLDatabase pureftpd
MYSQLCrypt md5
第5步:测试Pure-FTPd的设置
到了这一步,我们已经完成了Pure-FTPd的设置,现在,我们需要创建我们的第一个FTP帐户来测试我们的设置。为了测试我们的设置,我们首先需要创建Linux系统的用户。之后,我们将使用该用户的UID和GID创建我们的虚拟FTP帐户。
创建用户帐户:
# useradd demouser1
# passwd demouser1
获得此帐户的UID和GID:
# cat /etc/passwd | grep demouser1
demouser1:x:504:505::/home/demouser1:/bin/bash
根据上面的输出中,我们发现,usres UID是504和GID是505。
创建FTP帐户 通过phpmyadmin让登录到MySQL服务器或访问并创建您的第一个帐户。在本教程中,我使用的命令行。
# mysql -u root -p
Enter password:
mysql> INSERT INTO `users` (`User`, `Password`, `Uid`, `Gid`, `Dir`, `QuotaSize`,
`Status`, `ULBandwidth`, `DLBandwidth`, `Date`, `LastModif`)
VALUES ('ftpuser1', md5('_password_'), '504', '505', '/home/demouser1',
'20', 2, '10', '10', now(), '');
mysql> quit
根据上面的查询,我们已经成功地创建了第一个FTP帐户 ftpuser1
连接到FTP服务器使用新创建的FTP帐户,并尝试上传测试文件。
C:> ftp ftp.youcl.com
Connected to ftp.youcl.com.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 21:39. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
User (ftp.youcl.com:(none)): ftpuser1
331 User ftpuser1 OK. Password required
Password:
230 OK. Current restricted directory is /
ftp> put test.txt
200 PORT command successful
150 Connecting to port 57216
226-File successfully transferred
226 0.004 seconds (measured here), 0.65 Mbytes per second
ftp: 2593 bytes sent in 0.00Seconds 2593.00Kbytes/sec.
ftp> bye
221-Goodbye. You uploaded 3 and downloaded 0 kbytes.
221 Logout.
C:>
根据上述结果,我们已经成功地连接到FTP用户,并上传测试文件。让我们检查服务器上的文件。
# ls -l /home/demouser1/test.txt
-rw-r--r-- 1 demouser1 demouser1 2525 Dec 4 21:39 /home/demouser1/test.txt
现在,你可以看到,文件中获取其UID,GID,我们已经成功的在CentOS和RedHat中安装Pure-FTPd。