下面以最常见的 Linux 下 vsftpd 为例,说明如何设置 FTPServer 用户。如果你用的是 Windows(如 FileZilla Server),我也可以再单独说明。
# CentOS / Rocky / Alma
yum install -y vsftpd
# Ubuntu / Debian
apt update
apt install -y vsftpd
✅ 不要用 root 登录 FTP
# 创建用户
useradd -m ftpuser
# 设置密码
passwd ftpuser
-m会自动创建/home/ftpuser
# 创建 FTP 目录
mkdir -p /data/ftp
# 设置目录权限
chown ftpuser:ftpuser /data/ftp
chmod 750 /data/ftp
编辑配置文件:
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
如果用户登录后想直接进 /data/ftp:
usermod -d /data/ftp ftpuser
# FTP 端口
firewall-cmd --add-service=ftp --permanent
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
systemctl enable vsftpd
systemctl start vsftpd
ftp 服务器IP
或使用 FileZilla / WinSCP
如果你不希望用户有系统账号,可以用:
适合:
| 问题 | 原因 |
|---|---|
| 530 Login incorrect | 密码错误 / PAM 限制 |
| 500 OOPS: chroot | 目录权限不对 |
| 能连不能列目录 | 被动端口未放行 |
如果你能告诉我:
我可以直接给你一套完全可用的配置方案。