Ubuntu下安装PureFTPd服务器

来源:互联网 发布:上海耀姚贸易 知乎 编辑:程序博客网 时间:2024/05/18 03:19

转自: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-getinstallmysql-server mysql-client phpmyadmin apache2

3、开始安装PureFTPd

1
apt-getinstallpure-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-mysqlrestart

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服务将可以正常使用。


0 0
原创粉丝点击