VSFTPD虚拟(来宾)用户@中的用户名

我已经设置VSFTPD,所以当用户连接它将使用user_config_dirsearch该连接的用户,并设置一个chroot访客会话(因为有多个FTP帐户属于多个用户在服务器上)。 这适用于没有特殊字符的用户名。 为了避免用户名冲突,我使用后缀'@ domain.tld'来设置每个用户名。然而,当用户名称中有@符号时, user_config_dir的自定义规则不会被加载。 在VSFTPD中有没有办法解决这个问题?还是需要切换的设置?

的vsftpd.conf

 listen=YES anonymous_enable=NO local_enable=YES guest_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES chroot_local_users=YES pam_service_name=scftp user_config_dir=/etc/vsftpd/virtual 

pam.d / scftp

 auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 

vitrtual / usernamewithoutspecialchars

 write_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_upload_enable=YES local_root=/home/marco chroot_local_user=YES dirlist_enable=YES download_enable=YES guest_username=marco 

virtual/[email protected]

 write_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_upload_enable=YES local_root=/home/marco chroot_local_user=YES dirlist_enable=YES download_enable=YES guest_username=marco 

它真的只是似乎不匹配的FTP用户[email protected]适当的虚拟文件 – 而usernamewithoutspecialchars工作得很好。

Linux文件系统可以非常高兴地pipe理目录名下的@,所以你最可能看到的问题是vsftpd。 你有没有尝试使用user.domain.tld而不是[email protected]

您应该尝试使用SQL或RADIUS后端进行身份validationlogin,并且用户名应该作为电子邮件存储在SQL数据库中。 这工作,我testing了它。