温馨提示×

linux ftpserver如何加用户

小樊
34
2026-10-02 07:12:43
栏目: 智能运维

在 Linux 上搭建 FTP 服务器并添加用户,常见做法有两种:系统用户(本地用户) 和 虚拟用户(推荐,更安全)。下面以最常用的 vsftpd 为例说明。


一、使用系统用户(简单,适合内部使用)

1. 安装 vsftpd

# Debian/Ubuntu
sudo apt update
sudo apt install vsftpd

# CentOS/RHEL
sudo yum install vsftpd

2. 创建 FTP 用户

sudo useradd -m ftpuser
sudo passwd ftpuser

3. 设置用户家目录权限

sudo chown ftpuser:ftpuser /home/ftpuser

4. 修改 vsftpd 配置

编辑 /etc/vsftpd.conf:

local_enable=YES
write_enable=YES

5. 启动服务

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

✅ 用户可用 ftpuser / 密码 登录


二、使用虚拟用户(推荐,更安全)

1. 安装必要组件

# Ubuntu
sudo apt install vsftpd libpam-pwdfile

# CentOS
sudo yum install vsftpd

2. 创建虚拟用户文件

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

内容:

testuser
testpass

3. 生成用户数据库

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

4. 配置 PAM

编辑 /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/ftproot -s /sbin/nologin vftp
sudo mkdir /home/ftproot/testuser
sudo chown vftp:vftp /home/ftproot/testuser

6. 修改 vsftpd 配置

anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=vftp
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/ftproot/$USER

7. 重启服务

sudo systemctl restart vsftpd

三、防火墙 & SELinux(如无法连接)

# 防火墙
sudo ufw allow 21

# SELinux(CentOS)
sudo setsebool -P ftpd_full_access on

四、常见注意事项

  • 被动模式需配置 pasv_min_port / pasv_max_port
  • 云服务器需开放对应端口
  • 不建议直接用 root 作为 FTP 用户

如果你告诉我:

  • 使用的 Linux 发行版
  • 是否用 vsftpd / proftpd / pure-ftpd
  • 是 内网还是公网

我可以给你一套更精确的配置示例。

0 踩