本文介绍如何在 Ubuntu Server 上安装并配置 vsftpd,实现一个带用户访问控制的安全 FTP 服务。
1. 安装 vsftpd
sudo apt install vsftpd2. 确认服务运行状态
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=$USERlocal_root=/home/$USER/ftp配置用户访问白名单
userlist_enable=YESuserlist_file=/etc/vsftpd.userlistuserlist_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。
Thanks for reading!
