
本文介绍如何在 Ubuntu Server 上安装并配置 vsftpd,实现一个带用户访问控制的安全 FTP 服务。
1. 安装 vsftpd
sudo apt install vsftpd
2. 确认服务运行状态
sudo systemctl status vsftpd.service
执行后若看到如下输出,说明服务已成功启动:
Active: active (running)
3. 配置 vsftpd
打开配置文件:
sudo nano /etc/vsftpd.conf
按需启用以下配置项(取消对应行的注释或直接添加):
允许 FTP 写入操作
write_enable=YES
限制用户只能访问自己的目录
chroot_local_user=YES
⚠️ 启用 chroot 前请评估安全风险,详见 vsftpd 官方 FAQ。
设置用户根目录
user_sub_token=$USER
local_root=/home/$USER/ftp
配置用户访问白名单
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
设置文件创建权限掩码
# 默认 umask 为 077,推荐改为 022 以兼容多数 FTP 客户端
local_umask=022
参考:umask 权限详解
4. 创建 FTP 专用用户
sudo adduser <ftp-username>
5. 创建并配置 FTP 目录
# 创建目录
sudo mkdir <ftp-directory>
# 将目录所有权转移给 FTP 用户
sudo chown <ftp-username> <ftp-directory>
用户与目录管理常用命令
| 用途 | 命令 |
|---|---|
| 查看当前用户所在组 | groups |
| 查看指定用户的用户组 | groups <username> |
| 将用户从某个组中移除 | deluser <username> <groupname> |
| 更改目录所属组 | chgrp <groupname> <directory> |
6. 使用客户端连接
完成以上步骤后,即可使用 FTP 客户端(如 FileZilla)连接服务器。
🔒 注意:当前配置使用明文 FTP,客户端可能提示"不安全连接"。如需加密传输,建议进一步配置 FTPS(FTP over TLS)或改用 SFTP。