linux-FTP服务配置与应用

也许你对FTP不陌生,但是你是否了解FTP到底是个什么玩意? FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为 "文传协议" 用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。FTP用的比NFS更多,所以请你一定要熟练配置它。

其实在CentOS或者RedHat Linux上有自带的ftp软件叫做vsftp, 但笔者介绍的并不是它,如果你有兴趣可以和笔者交流,笔者本章使用pure-ftpd搭建ftp服务器,因为这个软件比vsftp配置起来更加灵活和安全

1.安装pure-ftpd
pure-ftpd的官网是http://www.pureftpd.org/project/pure-ftpd 
wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/obsolete/pure-ftpd-1.0.43.tar.gz
2.解压pure-ftpd
3.安装pure-ftpd

编译的命令为:

./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits --with-tls

如果报错,就使用命令安装gcc

yum -y install gcc gcc-c++ kernel-devel

报错这个就安装openssl

yum install -y openssl-devel

编译成功的显示如下

使用make和make install进行编译

使用命令查看上一条命令的执行结果是否有问题,显示0就说明没问题

4.ftp的配置

修改配置文件

我们要先创建一个目录/usr/local/pureftpd/etc/其中的sbin是编译时生成的

配置文件,把配置文件和主要执行文件拷到对应的文件夹下面
cd /usr/local/src/pure-ftpd-1.0.43 //切换到源码目录
cd configuration-files //切换到这个目录
chmod 755 pure-config.pl //让用户有完全权限(因为默认没有执行权限)
cp pure-config-pl /usr/local/pureftpd/bin //把执行文件复制到bin目录下
cp pure-ftpd.conf /usr/local/pureftpd/etc //复制ftp配置文件到etc中
cd ... //切换到/pure-ftpd-1.0.43目录中
cp pureftpd-ldap.conf /usr/local/pureftpd/etc //相关配置文件复制到etc中
cp pureftpd-mysql.conf /usr/local/pureftpd/etc //相关配置文件复制到etc中
cp pureftpd-pgsql.conf /usr/local/pureftpd/etc //相关配置文件复制到etc中

标准是全部都拷贝进我们创建的目录中,但是我们这里只是演示,只拷贝配置文件和执行ftp的文件

编辑pure-ftpd.conf文件,因为参数很多,很乱,我直接删除没用的注释,然后如下配置即可,也可以直接复制我的,然后进行修改,其实就是英文,会英文看懂意思,修改就行

[root@localhost etc]# cat 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
llowUserFXP                no
AllowAnonymousFXP           no
ProhibitDotFilesWrite       no
ProhibitDotFilesRead        no
AutoRename                  no
AnonymousCantUpload         no
PIDFile                     /usr/local/pureftpd/var/run/pure-ftpd.pid
AntiWarez                   yes
Umask                       133:022
MinUID                      100
MaxDiskUsage               99
CustomerProof              yes

[root@localhost etc]#

然后开启一下,显示running而且没报错,说明启动成功

5.创建账号

其中,-u将虚拟用户ftp_user1与系统用户www关联在一起,也就是说使用ftp_user1账号登陆ftp后,会以www的身份来读取文件或下载文件。-d 后边的目录为ftp_user1账户的家目录,这样可以使ftp_user1只能访问其家目录/data/www/. 到这里还未完成,还有最关键的一步,就是创建用户信息数据库文件:

pure-pw还可以列出当前的ftp账号,当然也可以删除某个账号, 我们再创建一个账号:

列出当前账号

删除账号命令

6.测试

下载lftp工具

只用ls命令查看目录

相关推荐
清风-云烟16 分钟前
使用redis-cli命令实现redis crud操作
java·linux·数据库·redis·spring·缓存·1024程序员节
Rm25 分钟前
Linux 防火墙 Systemctl 常用命令速查
linux
孤寂大仙v37 分钟前
【Linux】环境变量
linux·运维·服务器
稳联技术1 小时前
DeviceNet转Profinet网关+FANUC机器人:打造工业界的灭霸手套,掌控无限可能
运维·服务器
贾贾20231 小时前
配电自动化中的进线监控技术
大数据·运维·网络·自动化·能源·制造·信息与通信
DADIAN_GONG1 小时前
how to use | in Linux? give me an example
linux·运维·服务器
数据的世界011 小时前
C#中的语句
服务器·c#
新知图书2 小时前
Linux C\C++编程-文件位置指针与读写文件数据块
linux·c语言·c++
geffen082 小时前
HDBaseT和KVM 和POE是怎么融合在一块的
linux
张3蜂2 小时前
.NET 8 项目 Docker 方式部署到 Linux 系统详细操作步骤
linux·docker·.net