一、虚拟用户概念
虚拟用户是不对应真实系统账户的FTP用户,提供更好的安全隔离。
二、安装vsftpd
sudo apt update
sudo apt install vsftpd -y
sudo systemctl start vsftpd
三、配置虚拟用户
3.1 安装PAM模块
sudo apt install libpam-pwdfile
sudo apt install apache2-utils
3.2 创建用户数据库
# 创建用户列表
sudo nano /etc/vsftpd/virtual_users.txt
# 添加用户(奇数行用户名,偶数行密码)
admin
password123
user1
pass456
3.3 生成认证数据库
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
sudo chmod 600 /etc/vsftpd/virtual_users.db
四、配置PAM认证
sudo nano /etc/pam.d/vsftpd-virtual
auth required /lib/security/pam_pwdfile.so pwdfile /etc/vsftpd/virtual_users.db
account required /lib/security/pam_pwdfile.so pwdfile /etc/vsftpd/virtual_users.db
五、vsftpd配置
sudo nano /etc/vsftpd.conf
# 虚拟用户配置
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/var/www/sites/$USER
六、创建目录结构
# 为虚拟用户创建目录
sudo mkdir -p /var/www/sites/admin
sudo mkdir -p /var/www/sites/user1
# 设置权限
sudo chown -R ftp:ftp /var/www/sites
sudo chmod -R 755 /var/www/sites
七、重启服务
sudo systemctl restart vsftpd
八、常见问题
Q1:登录失败?
检查PAM配置和用户数据库。
Q2:目录访问受限?
确认目录权限和所有者。
九、总结
虚拟用户配置可以增强FTP服务器的安全性和灵活性。
注:本文基于2026年Debian 12编写