这几天接触了一下cpanel,发现里面并没有用vsftpd作为ftp服务端,所以我想抛弃vsftpd,选择Pure-FTPd试试:

1、找到最新版本的PureFTPd

去网站 http://download.pureftpd.org/pub/pure-ftpd/releases/ 找到最新的下載地址

2、下載并安裝

如果要使用mysql來管理虛擬用戶,需要安裝mysql-devel:

yum -y install mysql-devel

cd /usr/local/src
wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.gz
tar -zxf pure-ftpd-1.0.36.tar.gz
cd pure-ftpd-1.0.36
./configure --prefix=/usr/local/pureftpd --with-peruserlimits --with-welcomemsg --with-ftpwho --with-throttling --with-mysql --with-language=simplified-chinese
make && make check && make install

如需了解configure的更多选项请看 http://download.pureftpd.org/pub/pure-ftpd/doc/README

3、开机启动PureFTPd

cp contrib/redhat.init /etc/init.d/pure-ftpd
chmod 755 /etc/init.d/pure-ftpd
chkconfig --add pure-ftpd
chkconfig --level 3 pure-ftpd on

启动和停止PureFTPd
service pure-ftpd stop
service pure-ftpd start
service pure-ftpd restart
service pure-ftpd status

4、配置文件

cp configuration-file/pure-ftpd.conf /etc
cp pureftpd-mysql.conf /etc
cp configuration-file/pure-config.pl /usr/local/sbin/pure-config.pl
chmod 744 /etc/pure-ftpd.conf
chmod 755 /usr/local/sbin/pure-config.pl

添加ftp用户组(ftpgroup)和用户名(ftpuser),为所有虚拟ftp用户映射。可以自己定义ftp用户组和用户名

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser

创建pureftpd mysql数据库
mysql -u root -p

现在我们来创建pureftpd数据库和pureftpd的mysql用户名:
替换password成你想要的mysql用户pureftpd的密码。

CREATE USER 'pureftpd'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE pureftpd;
GRANT ALL ON pureftpd.* TO 'pureftpd'@'localhost'

添加ftpd数据库表
USE pureftpd;
CREATE TABLE users (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Password varchar(64) NOT NULL default '',
Uid varchar(11) NOT NULL default '-1',
Gid varchar(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY `User` (User)
) ENGINE=MyISAM;
quit; #断开数据库连接

至此,pureftpd相关的数据库和数据库表已经建立好了。

(MYSQL虛擬用戶的配置方法)
编辑/etc/pure-ftpd.conf文件,确保 ChrootEveryone, MySQLConfigFile, 和 CreateHomeDir这三个处于启动状态。

vi /etc/pure-ftpd.conf

ChrootEveryone yes
MySQLConfigFile /etc/pureftpd-mysql.conf
CreateHomeDir yes

ChrootEveryone是确保每个虚拟用户限制在其根目录,不能浏览其它目录。
CreateHomeDir是确保pureftpd自动建立相应目录。

然后编辑/etc/pureftpd-mysql.conf文件。

vi /etc/pureftpd-mysql.conf

确保MYSQLUser和MYSQLPassword为你之前所设置的mysql用户密码。

添加FTP虛擬用戶
在Mysql中运行一下sql语句:

INSERT INTO `users` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('exampleuser', '1', MD5('secret'), 'ftpuser', 'ftpgroup', '/home/www.example.com', '100', '100', '', '*', '50', '0');

也可以直接在phpmyadmin的pureftpd的users表里添加用戶:

User:虚拟pureftpd用户名。
status:0或1,0表示用户禁用。
Password:虚拟用户密码,确保把密码转成MD5再插入。
UID:ftp用户的ID。
GID:ftp用户组的ID。
Dir:ftp用户对应的根目录。
ULBandwidth:上传最大速度,单位为KB/s。
DLBandwidth:下载最大速度,单位为KB/s。
comment:备注。
ipaccess:可以连接ftp服务器的IP。“*”表示任何IP可以连接。
QuotaSize:最大存储空间,单位为MB。“0”表示不限制。
QuotaFiles:最大建立的文件数量。“0”表示不限制。

(允許系統用戶登錄的配置方法)

vi /etc/pure-ftpd.conf

UnixAuthentication yes
#MinUID 100

UnixAuthentication yes表示系统用户可以登录FTP。
MinUID 100表示用户的ID大于100才能登录,我们注释掉它,任何的用户ID都能登录了。

喜欢这篇文章吗,不妨分享给朋友们吧!