在Debian上设置VSFTPD的虚拟用户需要以下几个步骤:
sudo apt-get update
sudo apt-get install vsftpd
sudo adduser --system --group --disabled-login --no-create-home --home /var/www/vhosts/virtual_ftp virtual_user
这将创建一个名为virtual_user
的系统用户,该用户不能登录,没有主目录。
db-util
软件包:sudo apt-get install db-util
然后,使用以下命令创建一个名为.db
的文件,其中包含虚拟用户的用户名和密码:
sudo touch /etc/vsftpd/virtual_users.txt
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
接下来,使用文本编辑器(如nano)创建一个CSV文件,其中包含虚拟用户的用户名和密码:
sudo nano /etc/vsftpd/virtual_users.csv
在CSV文件中添加以下内容,用您选择的用户名和密码替换your_username
和your_password
:
your_username,your_password
保存并关闭文件。
db_load
命令将CSV文件导入到数据库中:sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.csv /etc/vsftpd/virtual_users.db
/etc/pam.d/vsftpd
文件,以启用PAM身份验证:sudo nano /etc/pam.d/vsftpd
在文件顶部添加以下行:
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
/etc/vsftpd.conf
文件,以启用虚拟用户并配置相关选项:sudo nano /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
guest_enable=YES
guest_username=virtual_user
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/var/www/vhosts/$USER
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
这些设置将启用虚拟用户,并将它们限制在其主目录中。您还可以根据需要自定义其他选项。
sudo mkdir -p /var/www/vhosts/virtual_ftp
sudo systemctl restart vsftpd
现在,您应该能够使用在/etc/vsftpd/virtual_users.csv
文件中定义的虚拟用户名和密码登录到FTP服务器。