Ubuntu下安装PureFTPd服务器

转自:http://www.winzp.org/blog/archives/188

近日热心Web开发,于是在本机安装了64位的ubuntu虚拟机,在copy文件时总是遇到权限问题,于是就想到搭建FTP服务器来解决这个问题。

Linux下的FTP服务器软件很多,PureFTPd是基于MySQL进行用户权限管理的,不必使用系统的用户,所以比较简洁方便,添加用户只需要在数据库中增加一行记录便可。

安装步骤如下:

1、打开终端,使用root账户登录

1
su ;

2、安装MySQL,PhpMyAdmin和Apache,如果你已经安装过了可以跳过这步。

1
apt-get install mysql-server mysql-client phpmyadmin apache2

3、开始安装PureFTPd

1
apt-get install pure-ftpd-mysql

4、创建ftpgroup和ftpuser

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

5、使用如下命令登录mysql

1
mysql -u root -p

在问及密码时输入安装过程你输入的密码。
6、创建pureftpd数据库和pureftpd用户,脚本如下:

1
2
3
4
CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO  'pureftpd' @ 'localhost' IDENTIFIED BY 'ftpdpass' ;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO  'pureftpd' @ 'localhost.localdomain' IDENTIFIED BY 'ftpdpass' ;
FLUSH PRIVILEGES;

7、切换到刚创建的pureftpd数据库:

1
USE pureftpd;

8、创建ftpd表

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
CREATE TABLE ftpd (
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)
) TYPE=MyISAM;

9、退出mysql

1
quit;

10、配置PureFTPd。首先在pureftpd文件夹下创建mysql.conf文件,如下:

1
2
3
cp /etc/pure-ftpd/db/mysql .conf /etc/pure-ftpd/db/mysql .conf_orig
cat /dev/null > /etc/pure-ftpd/db/mysql .conf
vim /etc/pure-ftpd/db/mysql .conf

11、打开/etc/pure-ftpd/db/mysql.conf,文件内容如下:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
MYSQLSocket      /var/run/mysqld/mysqld .sock
#MYSQLServer     localhost
#MYSQLPort       3306
MYSQLUser       pureftpd
MYSQLPassword   ftpdpass
MYSQLDatabase   pureftpd
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
MYSQLCrypt      md5
MYSQLGetPW      SELECT Password FROM ftpd WHERE User= "\L" AND status= "1" AND (ipaccess = "*" OR ipaccess LIKE "\R" )
MYSQLGetUID     SELECT Uid FROM ftpd WHERE User= "\L" AND status= "1" AND (ipaccess = "*" OR ipaccess LIKE "\R" )
MYSQLGetGID     SELECT Gid FROM ftpd WHERE User= "\L" AND status= "1" AND (ipaccess = "*" OR ipaccess LIKE "\R" )
MYSQLGetDir     SELECT Dir FROM ftpd WHERE User= "\L" AND status= "1" AND (ipaccess = "*" OR ipaccess LIKE "\R" )
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User= "\L" AND status= "1" AND (ipaccess = "*" OR ipaccess LIKE "\R" )
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User= "\L" AND status= "1" AND (ipaccess = "*" OR ipaccess LIKE "\R" )
MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User= "\L" AND status= "1" AND (ipaccess = "*" OR ipaccess LIKE "\R" )
MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User= "\L" AND status= "1" AND (ipaccess = "*" OR ipaccess LIKE "\R" )

请确保该文件中的用户名和密码正确。
12、创建/etc/pure-ftpd/conf/ChrootEveryone文件

1
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone

13、创建 /etc/pure-ftpd/conf/CreateHomeDir文件

1
echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir

14、创建 /etc/pure-ftpd/conf/DontResolve文件

1
echo "yes" > /etc/pure-ftpd/conf/DontResolve

15、重启PureFTPd

1
/etc/init .d /pure-ftpd-mysql restart

16、打开PhpMyAdmin,在浏览器中输入地址:http://localhost/phpmyadmin
17、在ftpd表中添加ftp用户,如下:

1
INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ( 'ivan' , '1' , MD5( 'ivan123' ), '2001' , '2001' , '/home/ivan' , '100' , '100' , '' , '*' , '50' , '0' );

18、到此即可开始使用搭建好的FTP服务器了。
如果,遇到无法启动FTP服务等问题,请检查每一步是否都正确执行,如按步骤执行FTP服务将可以正常使用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值