admin 管理员组

文章数量: 1184232


2024年4月14日发(作者:mysql恢复表数据)

维普资讯

实践与经验 

使用Pure—FTPd和MySQL构建F1'P服务器 

徐鲁辉 

(河南大学计算机与信息T程学院,开封475004) 

摘要:简要介绍了FTP服务、FreeBSD操作系统和Pure—FTPd,讲述了在FreeBSD环境下使用Pure— 

FTPd和MySQL构建FTP服务器的详细过程和相关技术。 

关键词:FTP服务器;FreeBSD;Pure—FTPd;MySQL 

引 言 

②从,usr,share/exampIes,cvsup中复制一份ports— 

FrP服务是基于TCP/IP协议的用于实现本地计 

supfile glJ/usr中,这是为了使用方便且维持原有范例 

算机和远程计算机之间文件传输的网络服务,工作在 

不变。输人命令: 

#cp lusr/sharelexamples/cvsup/ports—supfile/usr 

Clienl/Server模式下。FreeBSD是基于BSD Unix的免 

费的开放源码的操作系统,它具有很多优良的特性. 

③编辑文件ports—supfile: 

如系统的高稳定性、高安全性,与许多执行文件的兼 

把*default host=CHANGE_THIS.FreeBSD.org改 

容性等。Pure—FI'Pd是一款免费的FrP服务软件。提 

为 default host=cvsup.feebsd,0 ;把ports—all注释 

掉;把自己需要更新的Ports组件打开,如ports—base 

供全部的FrP服务,它可以运行在Linux,OpenBSD, 

基本的工具,ports—archivers关于文件压缩及解压缩 

NetBSD,FreeBSD,Sloaris,Tru64,Darwin,Irix,HPUX 

等操作系统上。具有安全、高效、高适应性、完全兼容 

的程序等。 

性等特点。支持带宽限制、虚拟磁盘配额限制、FXP、 

④用下面的命令更新Ports—Tree: 

#cvsup—‘g—‘L 2/usdports—‘supfile 

IPv6等,其设计初衷就是数据传输的安全性,支持 

其实,并不是每个系统非得一定要对Ports Tree 

MySQL、LDAP、PGSQL等多种认证方式。因此,使用 

进行更新。但是为了使系统更加稳定地运行.减少系 

Pure—FTPd和MySQL在FreeBSD操作系统中实现 

统自身的安全性带来的危害.建议还是更新FreeBSD 

FrP服务.具有较高的实用价值和学习价值。 

系统的Ports Tree。 

1 安装H.yS0 L和Pu re—FTPd 

(2)安装和配置MySQL 

(1)安装前的准备:更新Ports-Tree 

①安装MySQIA.0.输入以下命令: 

现 

Ports Tree几乎每天都在更新.各种软件每天都 

#cd/usr/ports/databases/mysql40-server 

代 

#make SKIP

_

DNS

_

CHECK=yes BUILD

OPTIMIZED= 

计 

会有新版本推出.而且一些Ports—Tree的问题也可以 

yes BUILD STATIC=yes 

算 

通过CVSup取得新版本文件来修正。FreeBSD有一个 

#make install 

机 

基于CVS的升级系统.用户可以使用CVSup来升级 

^ 

这样,安装程序就会根据所设参数自动编译.从 

总 

自己的系统,使其与最新的同步。下面是使用CVSup 

第 

更新P0rts—Tree的具体操作。 

网站上下载MySQL40一Server。然后自动安装在/usr/lo— 

cal目录罩.数据库目录位于/var/db/mysq1..其中. 

二 

①若系统没有安装CVSup,则先安装。输人命令: 

SKIP

一 

v flp://cvsup freebsd.org/pub/CVSup/evsup—

_

DNS

_

CHECK=yes表示在加入本机名字时,不用 

一 

#pkg

add-f— 

九 

without-gui一16.1g.tgz 

做反向解析,BUILD_OPTIMIZED=yes表示在编译时 

期 

优化处理,BUILD—STATIC=yes表示把MySQL编译成 

v 

0 MODERN COMPUTER 2006

2 

维普资讯

实践与经验 

静态执行版本。 

#ep pure-flpd.conf.sample pum-flpd.conf 

#cp pure ̄pd—mysq1.conf.sample pureflpd—mysq1.conf 

②执行初始化程序(第一次安装才需执行),输入 

以下命令: 

#cd /usr/ports/databases/mysqI4O-server/work/mysql一 

4.O.26 

#./scfipts/mysql

install

db 

_

(2)修改pure—ftpd.conf配置文件 

#vi/usr/local/etc/pure-fipd.conf 

根据自己服务器的需要进行设置。如: 

●设置是否将每一用户限制在其主目录:Ch— 

rootEveryone yes 

③改变目录和文件的存取权限和属性值,输入以 

下命令: 

#chown-R mysql:mysql/usr/local/share/mysql 

#chows1一R mysql:mysql/var/db/mysql 

#chmod—R 755/var/db/mysql 

#chmod 744/usr/local/share/mysql/mysq1.server 

④启动MySQL服务器,输入以下命令: 

#/usr/local/share/mysql/mysq1.server start 

注意:MySQL安装后默认的超级用户名是root。 

初始密码为空。 

⑤测试MySQL运行是否正常,设置是否正确: 

●查看MySQL版本信息,输入命令:#usr3ocaY 

bin/mysqladmin version—u root—P。出现输入密码提 

示,由于初始密码为空。直接回车即可显示MySQL版 

本信息。 

●查看MySQL变量参数信息.输入命令:#usr/lo— 

cal/bin/mysqladmin variables—u root—P,出现输入密码 

提示,直接回车,查看MySQL各参数设置是否正确。 

⑥修改密码,输入以下命令: 

#/usr/loeal/bin/mysqladmin—u root-p password 

“123456”,然后出现输入密码提示,输入老密码,这样 

就把密码修改成了“123456”。 

(3)安装Pure-FTPd 

①输入命令#cd/usdports/locallftp/pure—ftpd转换 

目录,编辑Makefile文件,在CONFIGURE—ARGS=中 

根据个人需要添加配置参数,如: 

一一

with-mysql\ 

--with-uploadscfipts| 

--

with-quotas I 

…with ratios l 

一一

with-throttling、 

其中,…with mysql选项一定要添加,这是因为 

我们要使用MySQL来作Pure—FI'Pd的认证方式。 

②编译并安装,输人命令:#make install。 

2 配置Pu re—FTPd 

(1)复制系统中Pure—FTPd配置文件的模板 

#cd/usr/1ocaUetc 

●设置是否仅有匿名用户:AnonymousOnly no 

●设置是否仅允许认证用户登陆:NoAnonymous 

nO 

●设置MySQL配置文件的位置:MySQLConfig— 

File/usr/local/etc/pureftpd—mysq1.conf 

(3)修改pure邱d—mysq1.conf配置文件 

主要设置MySQLUser,MySQLPassword,My— 

SQLDatabase,MySQLCrypt等选项,具体配置实例如下: 

MySQISevrer localhost 

MySQLPotr 3306 

MYSQLUser itp 

MYSQLPassword ftp 

MYSQLDatabase pure ̄pd 

MYSQLCrypt any 

MYSQLGetPW SELECT Passwo ̄FROM users 

WHERE User-=”、L” 

MYSQLGetUid SELECT Uid FROM users 

WHERE User-=”\IJ” 

MYSQLGetGid SELECT Gid FROM USers 

WHERE User=-”\L.’ 

MYSQLGetDir SELECT Dir FROM USel ̄ 

WHERE User=”\IJ” 

MySQLGetQTAFS SELECT QuotaFiles FROM 

users WHERE User=”\IJ” 

MySQLGetQTASZ SELECT QuotaSize FROM 

users WHERE User=”、L” 

MySQLGetRatioUL SELECT ULRatio FROM USel'S 

WHERE User=-”\IJ” 

MySQLGetRatioDL SELECT DLRatio FROM users 

WHERE User=”\IJ” 

现 

MySQLGetBandwidthUL SELECT ULBandwidth FROM 

代 

users WHERE User=-”\IJ” 

计 

MySQLGetBandwidthDL SELECT DLBandwidth FROM 

算 

users WHERE User=-”\IJ” 

机 

^ 

3 在FTP Se rve r上添加FTP用户和用 

总 

第 

户组 ’ 

二 

- 

输入以下命令: 、 

一 

九 

期 

v 

M0DERN COMPUTER 2006.2囝 

维普资讯

珂 n

实践与经验 

pw groupaddftpusers—g 2000 

#pW useradd ftp—n 2000一g flpusers—s/shirdnologin 

DLBandwidth smallint(5J NOT NULL default~0, 

status enum(’0’,…1)NOT NULl default 0, 

(!olnment tinytext NOT NUI 1 , 

前者表示在服务器上创建ftpuser用户组,用户 

组ID为2000.后者表示在服务器上创建l,'rP用户, 

它隶属于fipusers用户组,其中“S/sbin/nologin”表 

示禁止用户进入shell。 

ipa ̄:cess varehar(1 5)NOT NULL default…, 

PRIMARY KEY(User), 

I JNIQUE KEY(User) 

)TYPE=MyISAM; 

4在MyS0 L中添加用户和建立认证数据库 

②在pureftpd.users表中添加丌P服务认证用厂J 

(1)添加用户FTP 

进入MySQL.在数据库MySQL的表user巾添加 

丌P用户.并指定其权限。在mysql提示符下输入以 

下命令: 

mysql>USE mysql; 

mysql>INSERT INTO mysq1.user(Host,User,Password, 

Seleet

_

pfiv,Insert._priv,Update

priv,Delete

priv,Create

priv, 

Drop

priv,Reload

priv,Shutdown

priv,Process pfiv,File

priv, 

Grant

pfiv,References

_

priv,Index

priv,Aher

_

priv)VALUES 

rlocalhost','ftp’,PASSWORD(’ftp ),’Y’,’Y ,’Y’,’YI,INt,tN’,‘Nt,lN’, 

’N‘,‘N’,’N’,’N’,’N , N’); 

mysqI>FLUSH PRIVILEGES; 

注意:在mysq1.user中添加的用户名和密码要和 

pureflpd-mysq1.conf配置义件中“MySQLUser”和 

“MySQLPassword”的设定值一致,mysql的每个命令后 

面都要跟上分号“;”以执行该条命令。命令“FI USH 

PRIVILEGES;”表示刷新权限表。 

(2)建立认证数据库purefcpd 

注意:数据库名和表名要和pureftpd—mysq1.oonf配 

置文件中“MySQLDatabase”的设定值及SEI ECT语句 

中的表名相一致。 

①建立数据库pureftpd及其表users,在mysq1提 

示符下输入以下命令: 

mysql>CREATE DATABASE purefipd; 

mysql>USE pumflpd; 

mysql>CREATE TABLE users( 

User varchar(16)NOT NUI 1 default”, 

Password varehar(6,J,)Nf)下NULL default”, 

Uid v

arehar(11)NOTNULLdefault 1’, 

Gid varehar(1 1)NOT NULL default 一1’, 

Dir varehar(128)NOT NULL default”, 

QllotaFiles int(1 1)NOT NULL default 0, 

QuolaSize smallint(5)NOT NULL default 0, 

Il1 Ilalio smallint(5)NOT NULL tiefault 0, 

DLRatio smallint(5)NOT NULL default 0, 

ULBandwidth smallint(5)NOT NULL default 0, 

t 

o MODERN COMPUTER 2o06

2 

lfptest1,在mysql提示符下输入以下命令: 

mysqI>INSERT INTO users VALUES(’lfptestl',MD5 

(’lfptest1’),’2001’,’20o0’,’/home/itp/’,100,10,1,10,10,100,0, , 

…): 

mysqI>FLUSH PRIVILEGES; 

5 测试和维护 

①启动MySQL J]f/ ̄-和Pure—FTPd服务.使用以 

下命令: 

#/usr/loeal/share/mysql/mysq1.server start 

#/usr/1ocal/ete/rc.d/pur ̄一flpd.sh start 

②使用以下命令测试丌P服务器是否可用: 

#ftp localhost或者#ftp 218.196.207.83f耵P Serv— 

er的IP地址),若出现如图1所示的信息,则表明 

丌P服务器可用。 

图1 

. 

图2为在FTP Server上匿名登录的测试结果。 

图2 

维普资讯

实践与经验 

’ 

网3为在FTP server上合法用户ftptestl登录’的 - 

:毒誓 茬③任何繁于 ≥  P n毒一 一 的醣窘F 的醣盎  件p支伴p 一ure—flpd. 

测试结果。 

conf和pureftpd—mysq1.cqnf的改动,都需要重新启动 

mysqt和p ̄eftpd,使新 配置文什生效,使用以下命 

爪 

#/usr/local/share/mysql/mysq1.serve! stop 

#/usr/local/etc/rc.(t/pure-ftpd.sh stirp 

#/usr/local/share/mysql/mysq1.server start 

#/usr/local/etc/rc.d/pure-ftpd.sh start 

参考文献 

[1]Frank DENIS.README.hnp://www.pureftpd.org/ 

README 

f2]Frank DENIS.README.MySQL.http://www.pureflpd. 

图3 

org/README.MySQL 

[3】马昕炜.Linux服务器配置手册.北京:科学出版丰十,2005: 

③修改/etc/rc.conf文件,加入下面两条内容.使系 

253—282 

统重新启动后自动驱动mysql和pureftpd.提供 

[4】王波.FreeBSD使用大全(第二版).北京:机械 业出版 

MySQL和FTP服务。 ‘ 

社.2002:206 ̄215 

mysqlenable=“yes” 

(收稿日期:2005—11—09) 

_

pureftpd

_

enable=”yes” 

Build of FTP Server using 

Pu re-FTPd and MySQL on FreeBS D 

XU Lu—hui 

(College of Computer ant]Infi)nnation Engineering,Henan University,Kaifeng 475004 China) 

Abstract This paper simply introduced丌P service.FreeBSD operation system and Pure—FrrPd.then disussed how to 

build a丌P server using Pure—FTPd and MySQL on FreeBSD. 

Key WOrds 

丌P Server;FreeBSD;Pure-FTPd;MySQL 

MO D ERN COM PUTE R 2 2 @ 

面 


本文标签: 输入 用户 命令 服务器 是否