欢迎莅临阿Q的项目

专业WP商业设计开发销售中心

CentOS 6.2 Minimal 编译安装PureFTPd实录

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

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

1、找到最新版本的PureFTPd

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

2、下載并安裝

如果要使用mysql來管理虛擬用戶,需要安裝mysql-devel:
[syntaxHighLighter brush="shell"]yum -y install mysql-devel[/syntaxHighLighter]
[syntaxHighLighter brush="shell"]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[/syntaxHighLighter]
如需了解configure的更多选项请看 http://download.pureftpd.org/pub/pure-ftpd/doc/README

3、开机启动PureFTPd

[syntaxHighLighter brush="shell"]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[/syntaxHighLighter]
启动和停止PureFTPd
[syntaxHighLighter brush="shell"]service pure-ftpd stop
service pure-ftpd start
service pure-ftpd restart
service pure-ftpd status[/syntaxHighLighter]

4、配置文件

[syntaxHighLighter brush="shell"]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[/syntaxHighLighter]

添加ftp用户组(ftpgroup)和用户名(ftpuser),为所有虚拟ftp用户映射。可以自己定义ftp用户组和用户名
[syntaxHighLighter brush="shell"]groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser[/syntaxHighLighter]
创建pureftpd mysql数据库
[syntaxHighLighter brush="shell"]mysql -u root -p[/syntaxHighLighter]
现在我们来创建pureftpd数据库和pureftpd的mysql用户名:
替换password成你想要的mysql用户pureftpd的密码。

[syntaxHighLighter brush="shell"]CREATE USER 'pureftpd'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE pureftpd;
GRANT ALL ON pureftpd.* TO 'pureftpd'@'localhost'[/syntaxHighLighter]
添加ftpd数据库表
[syntaxHighLighter brush="shell"]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; #断开数据库连接[/syntaxHighLighter]

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

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

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

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

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

[syntaxHighLighter brush="shell"]vi /etc/pureftpd-mysql.conf[/syntaxHighLighter]

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

添加FTP虛擬用戶
在Mysql中运行一下sql语句:
[syntaxHighLighter brush="shell"]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');[/syntaxHighLighter]

也可以直接在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”表示不限制。

(允許系統用戶登錄的配置方法)
[syntaxHighLighter brush="shell"]vi /etc/pure-ftpd.conf[/syntaxHighLighter]

UnixAuthentication yes
#MinUID 100

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

如果喜欢本文,请分享给朋友们