FTP == File Transfer Protocol 文件上传下载。
lFTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议” 用于Internet上的控制文件的双向传输。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。在CentOS或者RedHatLinux上有自带的ftp软件叫做vsftpd 。
安装pure-ftpd 到官网下载 www.pureftpd.org
[root@LNMP src]# wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.41.tar.bz2 #不知何故没有下载下来
用迅雷下载下来:然后用rz命令发送到 /usr/local/src 目下(rz命令的使用百度,或在前面的章节找)
[root@LNMP src]# tar jxvf pure-ftpd-1.0.41.tar.bz2 #解压
[root@LNMP src]cd pure-ftpd-1.0.41
root@LNMP pure-ftpd-1.0.41]#
./configure \ --prefix=/usr/local/pureftpd \ --without-inetd \ --with-altlog \ --with-puredb \ --with-throttling \ --with-peruserlimits \ --with-tls
楼主在编译的时候报错了
configure: error: OpenSSL headers not found.
[root@LNMP pure-ftpd-1.0.41]# yum install openssl-devel #安装openssl
再次编译,并检测有没有问题。
[root@LNMP pure-ftpd-1.0.41]# make
[root@LNMP pure-ftpd-1.0.41]#echo $?
[root@LNMP pure-ftpd-1.0.41]# make install
[root@LNMP pure-ftpd-1.0.41]# echo $?
至此 pure-ftpd 安装告一段落。
[root@LNMP pure-ftpd-1.0.41]# ls /usr/local/pureftpd/ #查看文件
bin sbin share
[root@LNMP pure-ftpd-1.0.41]# mkdir -p /usr/local/pureftpd/etc/ #创建配置文件所在路径
[root@LNMP pure-ftpd-1.0.41]# cd configuration-file
[root@LNMP configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf
#拷贝配置文件
[root@LNMP configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl #拷贝启动文件
[root@LNMP configuration-file]# chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
#编辑目录权限
在启动pure-ftpd之前需要先修改配置文件,配置文件为/usr/local/pureftpd/etc/pure-ftpd.conf, 你可以打开看一下,里面内容很多,如果英文好,可以好好研究一番,下面是阿铭的配置文件,如果你嫌麻烦,直接拷贝过去即可:(清空原有的配置)
[root@LNMP configuration-file]# >/usr/local/pureftpd/etc/pure-ftpd.conf #清空
[root@LNMP configuration-file]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
MinUID 100 #影射系统用户的UID 最小是 100
PureDB /usr/local/pureftpd/etc/pureftpd.pdb #用户名和密码存放的文件
-------------------------------------------------------------------
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
----------------------------------------------------------------------
创建测试目录:将ftp放到 /tmp/ftp 下
[root@LNMP configuration-file]# mkdir /tmp/ftp
[root@LNMP configuration-file]# tail /etc/passwd #查看用户
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
mysql:x:500:500::/home/mysql:/sbin/nologin
php-fpm:x:501:501::/home/php-fpm:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
user3:x:502:502::/home/user3:/bin/bash #以user3为例
[root@LNMP configuration-file]# chown -R user3 /tmp/ftp #更改属主属组
[root@LNMP configuration-file]# /usr/local/pureftpd/bin/pure-pw useradd ftpuser1 -uuser3 -d /tmp/ftp/
Password: #输入密码
Enter it again:
#“useradd ftpuser1”添加登录ftp服务的虚拟用户
-uuser3 影射的系统用户
-d /tmp/ftp/ 共享的目录
[root@LNMP configuration-file]# /usr/local/pureftpd/bin/pure-pw mkdb #创建生存密码库文件
[root@LNMP configuration-file]# /usr/local/pureftpd/bin/pure-pw list #查看
ftpuser1 /tmp/ftp/./
[root@LNMP configuration-file]# /usr/local/pureftpd/bin/pure-pw userdel ftpuser1
#也可以删除用户 ,此处只作示例,不实际操作
启动pure-ftpd #前面是脚本,后面是配置文件
[root@LNMP configuration-file]# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
Running: /usr/local/pureftpd/sbin/pure-ftpd -A -c50 -B -C8 -D -fftp -H -I15 -lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb -L3136:8 -m4 -s -U133:022 -u100 -g/usr/local/pureftpd/var/run/pure-ftpd.pid -k99 -Z
#Running 是输出
查看进程
[root@LNMP ~]# ps aux |grep pure
root 1575 0.0 0.0 138940 744 ? Ss 21:31 0:00 pure-ftpd (SERVER)
root 1577 0.0 0.0 103256 828 pts/0 S+ 21:31 0:00 grep pure
[root@LNMP ~]# netstat -lnp
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1575/pure-ftpd (SER
在另一台linux 客户端尝试远程登录。
[root@bird ~]# yum install -y lftp #安装lftp 命令
在服务端查看共享的文件夹
[root@LNMP ~]# ls /tmp/ftp/
111 #在客户端创建的 111 目录
此处显示的是 502,因为在客户端上没有这个用户名,所以显示502.这个要理解。
在服务端可以查看影射用户的登录日志
------------------------------------------------------------
在客户端查看ftp 的命令。以下是ftp 的可用命令
get 是下载,put 是上传。详见下图。