PureFTPd是一款专注于程序健壮和软件安全的免费FTP服务器软件(基于BSD License),以安全和配置简单为设计目标,支持虚拟主机,IPV6,PAM等功能。。其可以在多种类Unix操作系统中编译运行,包括Linux、OpenBSD、NetBSD、FreeBSD、DragonFly BSD、Solaris、Tru64、Darwin、Irix and HP-UX。PureFTPd还有Android移植版本。

安装 Pure-FTPd
sudo apt-get install pure-ftpd
修改默认配置
与 centos 不同,这里需要在 /etc/pure-ftpd/conf 文件夹下执行下列命令,增加对应配置文件:
# 创建 /etc/pure-ftpd/conf/PureDB 文件,内容指定路径 /etc/pure-ftpd/pureftpd.pdb echo '/etc/pure-ftpd/pureftpd.pdb' > /etc/pure-ftpd/conf/PureDB # 创建 /etc/pure-ftpd/conf/VerboseLog 文件,开启日志 echo yes > /etc/pure-ftpd/conf/VerboseLog # 创建 /etc/pure-ftpd/conf/NoAnonymous 文件,拒绝匿名登录 echo yes > /etc/pure-ftpd/conf/NoAnonymous # 创建 /etc/pure-ftpd/conf/PassivePortRange 文件,开启被动端口范围 (这里需要根据实际需求调整端口范围) echo '39000 40000' > /etc/pure-ftpd/conf/PassivePortRange
建立数据库软链
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50puredb
启动 Pure-FTPd 服务
sudo systemctl start pure-ftpd.service
查看 Pure-FTPd 服务状态
sudo systemctl status pure-ftpd.service
准备系统用户,Pure‑FTPd 的虚拟用户需要映射到一个本地系统用户,通常使用 ftpuser(或自行创建的用户)并禁止登录。
# 创建一个专用的系统组(可选) sudo groupadd ftpgroup # 创建系统用户,加入该组,禁止交互式登录 sudo useradd -g ftpgroup -s /sbin/nologin -d /dev/null ftpuser
创建 FTP 根目录并设置权限,目录必须事先存在,否则虚拟用户登录后会报 “No such file or directory”
# 创建用户专属的目录 sudo mkdir -p /home/www/www_file_com # 把目录所有者改为上面创建的系统用户(ftpuser)和组 sudo chown -R ftpuser:ftpgroup /home/www/www_file_com # 根据需要设置访问权限(这里给目录读写权限,外部用户只能在此目录内操作) sudo chmod 750 /home/www/www_file_com
使用 pure‑pw 添加虚拟用户
Pure‑FTPd 自带的 pure-pw 工具负责管理虚拟用户。下面的命令会:
创建用户名 www_file_com
把它映射到系统用户 ftpuser(-u ftpuser)
指定根目录为 /home/www/www_file_com(-d /home/www/www_file_com)
在交互式提示下输入密码 123456
sudo pure-pw useradd www_file_com -u ftpuser -d /home/www/www_file_com # 系统会提示输入密码,直接键入 123456 并确认
生成(或更新)Pure‑FTPd 的用户数据库
pure-pw 只会把信息写入临时文件,必须再生成真正供 Pure‑FTPd 使用的数据库文件:
sudo pure-pw mkdb
这一步是必不可少的,否则新用户不会生效
确认 Pure‑FTPd 已启用 PureDB 认证
Pure‑FTPd 需要通过 PureDB 方式读取刚才生成的数据库。检查 /etc/pure-ftpd/conf/PureDB 是否存在,若不存在可手动创建软链接:
sudo ln -s ../conf/PureDB /etc/pure-ftpd/auth/50puredb
重启 Pure‑FTPd 服务使配置生效
sudo systemctl restart pure-ftpd
使用任意 FTP 客户端(如 FileZilla)连接服务器