温馨提示×

Linux下怎么添加FTP用户

小樊
36
2026-08-01 06:25:37
栏目: 智能运维

在 Linux 下添加 FTP 用户,常见做法取决于你使用的 FTP 服务软件。最常用的是 vsftpd,下面以它为主说明,同时补充 pure-ftpd 的做法。


一、使用 vsftpd 添加 FTP 用户(最常见)

1. 安装 vsftpd

# CentOS / Rocky / Alma
yum install -y vsftpd

# Ubuntu / Debian
apt update
apt install -y vsftpd

启动并设置开机自启:

systemctl start vsftpd
systemctl enable vsftpd

2. 创建 FTP 用户(方式一:系统用户,推荐)

(1)创建用户

useradd -m ftpuser
passwd ftpuser

(2)禁止该用户 SSH 登录(安全)

usermod -s /sbin/nologin ftpuser

(3)设置 FTP 目录

mkdir -p /data/ftp
chown ftpuser:ftpuser /data/ftp

3. vsftpd 关键配置

编辑配置文件:

vim /etc/vsftpd/vsftpd.conf

常见配置项:

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

重启服务:

systemctl restart vsftpd

✅ 此时用户 ftpuser 即可使用 FTP 登录。


二、使用虚拟用户(更安全,企业常用)

vsftpd 支持虚拟用户(不创建系统用户)。

1. 创建虚拟用户文件

vim /etc/vsftpd/vusers.txt

内容:

ftpuser1
123456
ftpuser2
abcdef

2. 生成数据库

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

3. 配置 PAM

vim /etc/pam.d/vsftpd

注释原内容,添加:

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

4. 创建虚拟用户映射的系统用户

useradd -d /data/ftp -s /sbin/nologin vftp

5. vsftpd 配置

guest_enable=YES
guest_username=vftp
virtual_use_local_privs=YES

三、使用 pure-ftpd(更简单)

1. 安装

yum install -y pure-ftpd
# 或
apt install -y pure-ftpd

2. 添加 FTP 用户

pure-pw useradd ftpuser -u www-data -d /data/ftp
pure-pw mkdb

启动服务:

systemctl start pure-ftpd

四、常见问题排查

1. 无法登录

  • 检查防火墙:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
  • 检查 SELinux:
setsebool -P ftp_home_dir on

2. 530 Login incorrect

  • 用户被禁止登录(/sbin/nologin 未配置)
  • PAM 配置错误

五、总结

场景 建议
简单使用 系统用户 + vsftpd
多用户、安全 vsftpd 虚拟用户
易管理 pure-ftpd

如果你愿意,可以告诉我:

  • 系统版本(CentOS / Ubuntu)
  • 是否允许 SSH
  • 是否多用户隔离

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

0