CentOS安装Pure-FTPd服务实现FTP功能

Pure-FTPd是一款免费FTP服务器软件,优势在于其安全性与灵活性,可自定义权限、创建虚拟用户、配置主目录等操作。

本文主要介绍如何在 CentOS 7.x 中安装配置Pure-FTPd。

安装 Pure-FTPd

shell 复制代码
# 安装
yum -y install pure-ftpd

配置 Pure-FTPd

配置文件默认位于 /etc/pure-ftpd/pure-ftpd.conf ,以下为常用配置,可以通过 vim 进行修改。

shell 复制代码
# 指定IP地址和端口号,默认为21端口,为安全考虑可更改为其它端口
Bind                         0.0.0.0,21898

# 指定PureDB用户数据库文件
PureDB                        /etc/pure-ftpd/pureftpd.pdb

# 拒绝匿名登录
NoAnonymous                  yes

# 被动模式端口范围,默认为30000到50000
PassivePortRange             30000 50000

参数均已存在,如需更改可将注释 # 号删除后修改内容

配置更改后,需重新启动 Pure-FTPd 服务,以使配置生效。

shell 复制代码
# 重启服务
systemctl restart pure-ftpd.service

创建系统用户及组

FTP 用户的上传目录(即主目录)通常为网站程序目录,创建系统用户的目的是让其继承对应权限,示例中创建 www 用户和 www 用户组,可在实际操作中根据情况进行修改。

shell 复制代码
# 创建 www 用户组
groupadd www

# 创建www用户
useradd -g www -s /sbin/nologin -d /dev/null www

管理 FTP 虚拟用户

以下命令示例中,虚拟用户名为 ftpuser ,可根据实际情况进行修改

1、添加 ftp 虚拟用户

shell 复制代码
# 格式
pure-pw useradd 虚拟用户名 -u 系统用户名 -d 主目录 -m

# 示例:创建FTP虚拟用户(用户名为ftpuser)同时配置主目录
pure-pw useradd ftpuser -u www -d /home/wwwroot/ -m

# 设置主目录权限
chown -R www:www /home/wwwroot/

2、修改 ftp 虚拟用户主目录

虚拟用户配置文件默认为 /etc/pure-ftpd/pureftpd.passwd ,里面有用户主目录,注意新修改的目录要设置权限。

shell 复制代码
# 打开配置文件
vim /etc/pure-ftpd/pureftpd.passwd

# 示例内容,注意主目录部分
ftpuser:....省略部分内容....::/home/wwwroot/...省略部分内容..

# 修改主目录
ftpuser:....省略部分内容....::/home/web/...省略部分内容..

# 上述操作保存退出后,设置新主目录的权限
chown -R www:www /home/web/

# 更新虚拟用户数据库
pure-pw mkdb

3、修改 ftp 虚拟用户密码

shell 复制代码
# 格式
pure-pw passwd 虚拟用户名

# 示例
pure-pw passwd ftpuser

# 更新虚拟用户数据库
pure-pw mkdb

4、删除 ftp 虚拟用户

shell 复制代码
# 格式
pure-pw userdel 虚拟用户名

# 示例
pure-pw userdel ftpuser

# 更新虚拟用户数据库
pure-pw mkdb

关于之前 lnmp 教程的额外说明

如服务器已参考以下教程搭建了 lnmp 环境,由于教程中 php-fpm 配置用户名及组为 nginx ,按本文教程示例中配置的 ftp 用户名及组为 www ,此时会造成上传的文件无法正常访问。可进行以下修改,将 php-fpm 配置文件中 nginx 改为 www 即可

1、搭建 lnmp 环境相关教程

【服务器】CentOS下通过yum搭建lnmp(单版本PHP)
【服务器】CentOS下通过yum搭建lnmp(多版本PHP)

2、针对教程中的 php-fpm 配置修改

shell 复制代码
# 编辑 php-fpm.d/www.conf

# 改为 www(约24,26行)
; RPM: apache user chosen to provide access to the same directories as httpd
user = www
; RPM: Keep a group allowed to write in log dir.
group = www

通过已上修改,再给合本 ftp 教程,即可正常上传程序访问网站。

相关推荐
大霞上仙几秒前
Ubuntu系统电脑没有WiFi适配器
linux·运维·电脑
weixin_4426434218 分钟前
推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案
服务器·网络·安全·filelink数据摆渡系统
Karoku06636 分钟前
【企业级分布式系统】Zabbix监控系统与部署安装
运维·服务器·数据库·redis·mysql·zabbix
为什么这亚子39 分钟前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
半桶水专家41 分钟前
用go实现创建WebSocket服务器
服务器·websocket·golang
布值倒区什么name1 小时前
bug日常记录responded with a status of 413 (Request Entity Too Large)
运维·服务器·bug
孤客网络科技工作室1 小时前
VMware 虚拟机使用教程及 Kali Linux 安装指南
linux·虚拟机·kali linux
。puppy2 小时前
HCIP--3实验- 链路聚合,VLAN间通讯,Super VLAN,MSTP,VRRPip配置,OSPF(静态路由,环回,缺省,空接口),NAT
运维·服务器
颇有几分姿色2 小时前
深入理解 Linux 内存管理:free 命令详解
linux·运维·服务器
光芒再现dev2 小时前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理