怎么设置FTPServer用户
下面以最常见的 Linux 下 vsftpd 为例,说明如何设置 FTPServer 用户。如果你用的是 Windows(如 FileZilla Server),我也可以再单独说明。
一、Linux 下使用 vsftpd 设置 FTP 用户(最常用)
1️⃣ 安装 vsftpd
# CentOS / Rocky / Alma
yum install -y vsftpd
# Ubuntu / Debian
apt update
apt install -y vsftpd
2️⃣ 创建 FTP 用户(推荐方式)
✅ 不要用 root 登录 FTP
# 创建用户
useradd -m ftpuser
# 设置密码
passwd ftpuser
-m会自动创建/home/ftpuser
3️⃣ 设置用户只能访问指定目录(安全)
# 创建 FTP 目录
mkdir -p /data/ftp
# 设置目录权限
chown ftpuser:ftpuser /data/ftp
chmod 750 /data/ftp
4️⃣ 配置 vsftpd(关键)
编辑配置文件:
vim /etc/vsftpd/vsftpd.conf
✅ 推荐配置
# 启用本地用户
local_enable=YES
# 允许写操作
write_enable=YES
# 禁止匿名登录
anonymous_enable=NO
# 限制用户只能访问指定目录
chroot_local_user=YES
# 允许写 chroot(新版 vsftpd 必须)
allow_writeable_chroot=YES
# 被动模式(推荐)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
5️⃣ 修改用户主目录(可选)
如果用户登录后想直接进 /data/ftp:
usermod -d /data/ftp ftpuser
6️⃣ 防火墙 & SELinux
防火墙
# FTP 端口
firewall-cmd --add-service=ftp --permanent
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
SELinux(如果开启)
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
7️⃣ 启动 vsftpd
systemctl enable vsftpd
systemctl start vsftpd
8️⃣ 测试登录
ftp 服务器IP
或使用 FileZilla / WinSCP
二、可选:创建“虚拟 FTP 用户”(更安全)
如果你不希望用户有系统账号,可以用:
- vsftpd + PAM + 虚拟用户
- 或 Pure-FTPd
适合:
- 多用户
- 只给 FTP 权限
- 高安全要求
三、Windows(FileZilla Server)简要说明
- 安装 FileZilla Server
- 打开 Users → Add
- 设置:
- 用户名
- 密码
- Home 目录
- 勾选:
- ✅ Write
- ✅ Delete
- ✅ Create directories
四、常见问题
| 问题 | 原因 |
|---|---|
| 530 Login incorrect | 密码错误 / PAM 限制 |
| 500 OOPS: chroot | 目录权限不对 |
| 能连不能列目录 | 被动端口未放行 |
如果你能告诉我:
- ✅ 系统(Linux / Windows)
- ✅ FTP 软件(vsftpd / Pure-FTPd / FileZilla)
- ✅ 用途(内网 / 公网 / 多用户)
我可以直接给你一套完全可用的配置方案。