在 Linux 下使用 vsftpd 创建 FTP 用户,常见做法有两种:
# CentOS / Rocky / Alma
yum install vsftpd -y
# Ubuntu / Debian
apt install vsftpd -y
useradd -m ftpuser
passwd ftpuser
usermod -s /sbin/nologin ftpuser
chown -R ftpuser:ftpuser /home/ftpuser
chmod 755 /home/ftpuser
编辑 /etc/vsftpd/vsftpd.conf(CentOS)或 /etc/vsftpd.conf(Ubuntu)
anonymous_enable=NO
local_enable=YES
write_enable=YES
systemctl restart vsftpd
systemctl enable vsftpd
✅ 此时可用 ftpuser 登录 FTP
# CentOS
yum install vsftpd pam* db4* -y
# Ubuntu
apt install vsftpd libpam-pwdfile -y
vim /etc/vsftpd/vusers.txt
内容:
user1
123456
user2
654321
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 /home/ftproot -s /sbin/nologin vftp
anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=vftp
user_config_dir=/etc/vsftpd/user_conf
mkdir /etc/vsftpd/user_conf
vim /etc/vsftpd/user_conf/user1
local_root=/home/ftproot/user1
write_enable=YES
mkdir -p /home/ftproot/user1
chown -R vftp:vftp /home/ftproot
systemctl restart vsftpd
pasv_address 和防火墙如果你告诉我:
我可以给你一份可直接用的配置。