温馨提示×

linux ftpserver如何设用户

小樊
46
2026-09-29 08:55:36
栏目: 智能运维

在 Linux 上搭建 FTP 服务器并设置用户,常见做法是使用 vsftpd(最流行、稳定)。下面以 vsftpd + 系统用户 / 虚拟用户 两种方式说明。


一、使用系统用户(最简单)

1. 安装 vsftpd

# Debian / Ubuntu
sudo apt update
sudo apt install vsftpd

# CentOS / Rocky / Alma
sudo yum install vsftpd

2. 启动服务

sudo systemctl enable vsftpd
sudo systemctl start vsftpd

3. 创建 FTP 用户

sudo useradd -m ftpuser
sudo passwd ftpuser

4. 设置 FTP 根目录

sudo mkdir /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp

5. 修改 vsftpd 配置

编辑:

sudo vim /etc/vsftpd.conf

关键配置:

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

6. 重启 vsftpd

sudo systemctl restart vsftpd

此时可用 ftpuser 登录 FTP。


二、使用虚拟用户(更安全,推荐生产环境)

1. 安装依赖

sudo apt install vsftpd libpam-pwdfile   # Ubuntu
# CentOS
sudo yum install vsftpd pam

2. 创建虚拟用户文件

sudo mkdir /etc/vsftpd
sudo vim /etc/vsftpd/vusers.txt

内容:

user1
password1
user2
password2

3. 生成用户数据库

sudo db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db

4. 配置 PAM

sudo vim /etc/pam.d/vsftpd

清空后写入:

auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers

5. 创建系统映射用户

sudo useradd -d /home/ftpdata -s /sbin/nologin ftpvuser
sudo mkdir /home/ftpdata
sudo chown ftpvuser:ftpvuser /home/ftpdata

6. vsftpd 配置

anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=ftpvuser
virtual_use_local_privs=YES
chroot_local_user=YES
allow_writeable_chroot=YES

7. 重启服务

sudo systemctl restart vsftpd

三、防火墙 & 被动模式(常见坑)

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp

vsftpd 配置:

pasv_min_port=30000
pasv_max_port=31000

四、常见问题

  • 530 Login incorrect → PAM 或用户密码错误
  • 500 OOPS: chroot → 加 allow_writeable_chroot=YES
  • 无法上传 → 检查目录权限 & write_enable=YES

如果你告诉我:

  • 使用的 Linux 发行版
  • 要 系统用户还是虚拟用户
  • 是否 只允许上传/下载

我可以给你一份可直接用的配置文件。

0 踩