在 Linux 下添加 FTP 用户,常见做法取决于你使用的 FTP 服务软件。最常用的是 vsftpd,下面以它为主说明,同时补充 pure-ftpd 的做法。
# CentOS / Rocky / Alma
yum install -y vsftpd
# Ubuntu / Debian
apt update
apt install -y vsftpd
启动并设置开机自启:
systemctl start vsftpd
systemctl enable vsftpd
useradd -m ftpuser
passwd ftpuser
usermod -s /sbin/nologin ftpuser
mkdir -p /data/ftp
chown ftpuser:ftpuser /data/ftp
编辑配置文件:
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 支持虚拟用户(不创建系统用户)。
vim /etc/vsftpd/vusers.txt
内容:
ftpuser1
123456
ftpuser2
abcdef
db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db
chmod 600 /etc/vsftpd/vusers.db
vim /etc/pam.d/vsftpd
注释原内容,添加:
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
useradd -d /data/ftp -s /sbin/nologin vftp
guest_enable=YES
guest_username=vftp
virtual_use_local_privs=YES
yum install -y pure-ftpd
# 或
apt install -y pure-ftpd
pure-pw useradd ftpuser -u www-data -d /data/ftp
pure-pw mkdb
启动服务:
systemctl start pure-ftpd
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
setsebool -P ftp_home_dir on
/sbin/nologin 未配置)| 场景 | 建议 |
|---|---|
| 简单使用 | 系统用户 + vsftpd |
| 多用户、安全 | vsftpd 虚拟用户 |
| 易管理 | pure-ftpd |
如果你愿意,可以告诉我:
我可以给你一套完全可用的配置方案。