温馨提示×

怎么设置FTPServer用户

小樊
43
2026-07-11 03:50:34
栏目: 编程语言

下面以最常见的 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)简要说明

  1. 安装 FileZilla Server
  2. 打开 Users → Add
  3. 设置:
    • 用户名
    • 密码
    • Home 目录
  4. 勾选:
    • ✅ Write
    • ✅ Delete
    • ✅ Create directories

四、常见问题

问题 原因
530 Login incorrect 密码错误 / PAM 限制
500 OOPS: chroot 目录权限不对
能连不能列目录 被动端口未放行

如果你能告诉我:

  • 系统(Linux / Windows)
  • FTP 软件(vsftpd / Pure-FTPd / FileZilla)
  • 用途(内网 / 公网 / 多用户)

我可以直接给你一套完全可用的配置方案

0