在 CentOS 上给 FTP 服务器(vsftpd) 添加用户,常见做法如下(最常用、最安全):
一般 CentOS 默认使用 vsftpd,先确认是否已安装并运行:
rpm -qa | grep vsftpd
systemctl status vsftpd
如果没装:
yum install -y vsftpd
systemctl enable vsftpd
systemctl start vsftpd
useradd ftpuser
passwd ftpuser
usermod -s /sbin/nologin ftpuser
mkdir -p /data/ftp/ftpuser
chown ftpuser:ftpuser /data/ftp/ftpuser
编辑配置文件:
vim /etc/vsftpd/vsftpd.conf
确保有以下配置:
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
重启服务:
systemctl restart vsftpd
✅ 用户 ftpuser 即可用 FTP 登录,且被限制在家目录。
适合 多用户、无系统权限 的场景。
vim /etc/vsftpd/vusers.txt
内容:
ftpuser1
123456
ftpuser2
654321
db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db
chmod 600 /etc/vsftpd/vusers.db
useradd -d /data/ftp -s /sbin/nologin vftpuser
vim /etc/pam.d/vsftpd
注释原内容,添加:
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
guest_enable=YES
guest_username=vftpuser
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user_conf
mkdir -p /etc/vsftpd/user_conf
vim /etc/vsftpd/user_conf/ftpuser1
local_root=/data/ftp/ftpuser1
write_enable=YES
mkdir -p /data/ftp/ftpuser1
chown vftpuser:vftpuser /data/ftp/ftpuser1
重启:
systemctl restart vsftpd
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
ftp localhost
或使用 FileZilla / WinSCP 测试。
| 方式 | 适用场景 |
|---|---|
| 系统用户 | 简单、快速 |
| 虚拟用户 | 多用户、安全、企业 |
如果你愿意,我可以 按你的 CentOS 版本(7/8/Stream) 或 是否用 SSL(FTPS) 给你一份完整配置清单。