For the complete documentation index, see llms.txt. This page is also available as Markdown.

34.2 Pure-FTPd(基于 MySQL)

Pure-FTPd 不支持中文环境

Pure-FTPd 已移除 RFC 2640 所定义的 FTP 协议国际化框架支持。在 Windows 系统中使用 FTP 命令行访问非英文字符文件时可能出现乱码。具体变更可参见 Pure-FTPd 1.0.48 版本发布公告。

启用 UTF-8 编码的示例如下:

ftp> quote opts utf8 on
504 Unknown command

在 FreeBSD 中使用命令行或 WinSCP 等客户端测试 Pure-FTPd 不会出现乱码。

安装 Pure-FTPd

通过 pkg 安装的 Pure-FTPd 不包含数据库支持,需通过 Ports 安装以启用 MySQL 集成。

# cd /usr/ports/ftp/pure-ftpd
# make config

在配置过程中勾选 MYSQL,其余选项保持默认值并确认。

配置 Port pure-ftpd

配置文件

配置文件需先复制示例文件,再据实际需要进行编辑。配置文件路径为:/usr/local/etc/pure-ftpd.conf

生成配置文件

将示例配置文件复制为实际使用的配置文件:

配置文件结构如下:

MySQL 集成配置

编辑 /usr/local/etc/pure-ftpd.conf 文件,调整相关配置项以启用 MySQL 认证:

配置 MySQL

本节以 MySQL 8.x 为示例。

请参照其他相关章节完成 MySQL 8.x 的安装配置。

创建数据库

创建 Pure-FTPd 使用的数据库和用户表:

创建数据库登录用户及设置密码

创建用于连接数据库的 Pure-FTPd 专用用户:

测试数据库连接:

配置文件

/usr/local/etc/pureftpd-mysql.conf 文件完整示例:

添加 FTP 组和用户

警告

使用数据库后,pure-pw 命令将不再生效。

创建系统用户和组,供虚拟 FTP 用户继承权限:

添加 FTP 登录用户时,需手动将其信息写入 MySQL 数据库。以下示例创建用户 test,密码为 test2

注意

写入表中的 UidGid 必须与此前通过 pw useradd 创建的用户保持一致。

技巧

其设计思路是:数据库中的虚拟用户继承 pw useradd 所创建用户的权限及 UID/GID,并通过数据库中的用户信息进行 FTP 文件操作。

实际操作示例:

配置 FTP 目录:

结构概览:

参考文献

服务操作

配置完成后,启动并管理 Pure-FTPd 服务:

参考文献

故障排除

  • Pure-FTPd 日志文件位于 /var/log/messages

最后更新于