FTP :File Transfer Protocol(文件传输协议),用于Internet上的控制文件的双向传输。主要是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
本文介绍一款FTP服务软件--pure-ftpd。
1、下载安装pure-ftpd
[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2
[[email protected] src]# tar -jxf pure-ftpd-1.0.42.tar.bz2
[[email protected] src]# cd pure-ftpd-1.0.42
[[email protected] pure-ftpd-1.0.42]# ./configure \
--prefix=/usr/local/pureftpd \
--without-inetd \
--with-altlog \
--with-puredb \
--with-throttling \
--with-peruserlimits \
--with-tls
[[email protected] pure-ftpd-1.0.42]# make
[[email protected] pure-ftpd-1.0.42]# make install
2、配置pure-ftpd
[[email protected] pure-ftpd-1.0.42]# mkdir -p /usr/local/pureftpd/etc/
[[email protected] pure-ftpd-1.0.42]# cd configuration-file/
[[email protected] configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf
[[email protected] configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl
[[email protected] configuration-file]# chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
在启动pure-ftpd之前需要修改配置文件/usr/local/pureftpd/etc/pure-ftpd.conf,可以用下面的全部替代原来文件。
[[email protected] configuration-file]# > /usr/local/pureftpd/etc/pure-ftpd.conf //清空文件
[[email protected] configuration-file]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber 50
Daemonize yes
MaxClientsPerIP 8
VerboseLog no
DisplayDotFiles yes
AnonymousOnly no
NoAnonymous no
SyslogFacility ftp
DontResolve yes
MaxIdleTime 15
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion 3136 8
AnonymousCanCreateDirs no
MaxLoad 4
AntiWarez yes
Umask 133:022
MinUID 100
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
AutoRename no
AnonymousCantUpload no
PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid
MaxDiskUsage 99
CustomerProof yes
其实只是标红的地方与源文件不同而已。/usr/local/pureftpd/etc/pureftpd.pdb是存放用户和密码的密码库文件。
3、建立账户
[[email protected] configuration-file]# cd
[[email protected] ~]# mkdir /tmp/ftp //创建FTP的家目录
[[email protected] ~]# useradd user3 //创建系统用户
[[email protected] ~]# chown -R user3:user3 /tmp/ftp/
[[email protected] ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uuser3 -d /tmp/ftp
Password:
Enter it again:
其中,-u将虚拟用户ftp_user1与系统用户user3关联在一起,也就是说使用ftp_user1账号登陆ftp后,会以user3的身份来读取文件或下载文件。-d 后边的目录为ftp_user1账户的家目录,这样可以使ftp_user1只能访问其家目录/tmp/ftp。
接着就是创建用户信息数据库文件(每进行上一步都要执行这步):
[[email protected] ~]# /usr/local/pureftpd/bin/pure-pw mkdb
启动pure-ftpd:
[[email protected] ~]# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
注:我们也可以列出当前账户以及删除某个账号
[[email protected] ~]# /usr/local/pureftpd/bin/pure-pw list //列出当前账号
[[email protected] ~]# /usr/local/pureftpd/bin/pure-pw userdel ftp_user1 //删除ftp_user1账户
4、测试pure-ftpd
登入另外一台客户端,然后用lftp工具远程连接服务端
[[email protected] ~]# yum install -y lftp
[[email protected] ~]# lftp [email protected]
口令:
lftp [email protected]:~> ls
drwxr-xr-x 2 503 user3 4096 Sep 13 03:36 .
drwxr-xr-x 2 503 user3 4096 Sep 13 03:36 ..
创建一个文件
lftp [email protected]:/> mkdir 111
mkdir 成功, 建立 `111‘
接着在服务端可以查看到客户端远程创建的目录
注意:客户端是不能创建文件的,我们可以通过?来查看lftp工具有什么命令:
5、lftp工具常用的命令使用
(1)下载
在服务端/tmp/ftp/目录下创建一个文件1.txt
[[email protected] ftp]# touch 1.txt
[[email protected] ftp]# echo ertyuiofghjkdfghjrtyuidfg > 1.txt
[[email protected] ftp]# cat 1.txt
ertyuiofghjkdfghjrtyuidfg
然后在客户端下载
lftp [email protected]:/> get 1.txt
26 bytes transferred
lftp [email protected]:/> quit
[[email protected] ~]# ls
1.txt anaconda-ks.cfg install.log install.log.syslog
[[email protected] ~]# cat 1.txt
ertyuiofghjkdfghjrtyuidfg
可以查看到下载成功了。
(2)上传
在客户端当前目录下创建个文件2.txt
[[email protected] ~]# vim 2.txt
[[email protected] ~]# cat 2.txt
123344cdiafiua
1234rcdabkjvav
登入到FTP
[[email protected] ~]# lftp [email protected]
lftp [email protected]:~> put 2.txt //上传文件
在服务端/tmp/ftp/目录下可以查看到客户端上传的文件
后记:
当然我们也可以通过Windows客户端的浏览器直接输入地址就可以访问ftp服务器: