在 Linux 上设置 FTP 用户,常见做法是使用 vsftpd(最常用、稳定)。下面我按最常用场景给你一个完整示例,适合新手直接照做。
yum install -y vsftpd
apt update
apt install -y vsftpd
useradd -m -s /sbin/nologin ftpuser
passwd ftpuser
编辑配置文件:
vim /etc/vsftpd/vsftpd.conf # CentOS
# 或
vim /etc/vsftpd.conf # Ubuntu
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_min_port=30000
pasv_max_port=31000
chown -R ftpuser:ftpuser /home/ftpuser
chmod 755 /home/ftpuser
如果你希望用户只能访问自己的目录(推荐):
chroot_local_user=YES
# CentOS
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
# Ubuntu
ufw allow 21/tcp
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
systemctl enable vsftpd
systemctl start vsftpd
查看状态:
systemctl status vsftpd
ftp localhost
grep ftpuser /etc/passwd
pam_service_name=vsftpd
解决:
allow_writeable_chroot=YES
你已经用了:
/sbin/nologin
如果想更严格,可配合:
echo "/sbin/nologin" >> /etc/shells
如果你告诉我:
✅ 系统版本
✅ 是否要加密(FTPS)
✅ 是否多用户
我可以给你定制配置方案。