在Debian上设置VSFTPD的虚拟用户需要经过以下几个步骤:
首先,确保已经安装了VSFTPD。如果没有,请运行以下命令来安装:
sudo apt-get update
sudo apt-get install vsftpd
使用db_load
命令创建一个虚拟用户数据库文件。首先,创建一个用于存储用户信息的文本文件,例如/etc/vsftpd/virtusers.txt
,并添加用户名和密码,每行一个,格式如下:
username1
password1
username2
password2
然后,使用db_load
命令将文本文件转换为数据库文件:
sudo db_load -T -t hash -f /etc/vsftpd/virtusers.txt /etc/vsftpd/virtusers.db
为了让VSFTPD使用虚拟用户数据库进行身份验证,需要创建一个PAM(Pluggable Authentication Modules)配置文件。创建一个名为/etc/pam.d/vsftpd-virtual
的文件,并添加以下内容:
auth required pam_userdb.so db=/etc/vsftpd/virtusers
account required pam_userdb.so db=/etc/vsftpd/virtusers
编辑VSFTPD的主配置文件/etc/vsftpd.conf
,根据需要进行以下修改:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
tcp_wrappers=YES
pam_service_name=vsftpd-virtual
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/$USER
这里,我们启用了虚拟用户,并设置了虚拟用户的根目录为/home/$USER
。
为每个虚拟用户创建一个根目录:
sudo mkdir -p /home/username1
sudo chown ftp:ftp /home/username1
将username1
替换为实际的用户名。
最后,重启VSFTPD服务以应用更改:
sudo systemctl restart vsftpd
现在,您应该可以使用虚拟用户登录到FTP服务器了。