在CentOS上设置VSFTPD虚拟用户需要以下几个步骤:
首先,确保已经安装了VSFTPD。如果没有,请运行以下命令安装:
sudo yum install vsftpd
使用文本编辑器(如vim)创建一个新文件,例如/etc/vsftpd/virtual_users.txt,并在其中添加虚拟用户的用户名和密码。例如:
virtualuser1
password1
virtualuser2
password2
保存并关闭文件。
运行以下命令,将虚拟用户信息存储到数据库文件中:
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
创建一个新的PAM配置文件/etc/pam.d/vsftpd-virtual,并添加以下内容:
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
编辑VSFTPD的主配置文件/etc/vsftpd/vsftpd.conf,并添加或修改以下内容:
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/$USER
chroot_local_user=YES
allow_writeable_chroot=YES
pam_service_name=vsftpd-virtual
这里,guest_enable=YES启用了虚拟用户,guest_username=ftpuser设置了虚拟用户的主目录,virtual_use_local_privs=YES允许虚拟用户使用本地权限,user_sub_token=$USER和local_root=/home/$USER设置了虚拟用户的根目录,chroot_local_user=YES将本地用户限制在其主目录中,allow_writeable_chroot=YES允许chroot环境可写,pam_service_name=vsftpd-virtual指定了PAM配置文件的名称。
为每个虚拟用户创建一个根目录,例如:
sudo mkdir /home/virtualuser1
sudo chown ftpuser:ftpuser /home/virtualuser1
将ftpuser替换为实际的系统用户,该用户将作为虚拟用户的宿主。
运行以下命令重启VSFTPD服务:
sudo systemctl restart vsftpd
现在,您应该可以使用虚拟用户登录到FTP服务器了。