VSFTPD 虚拟(来宾)用户用户名带有 @

VSFTPD 虚拟(来宾)用户用户名带有 @

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

vsftpd 配置文件

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/用户名不带特殊字符

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

虚拟的/[电子邮件保护]

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工作正常。

答案1

Linux 文件系统可以非常顺利地管理目录名称中的 @,因此您看到的问题最有可能出在 vsftpd 上。您是否尝试过使用user.domain.tldin 代替[email protected]

答案2

您应该尝试使用 SQL 或 RADIUS 后端进行身份验证登录,并且用户名应作为电子邮件存储在 sql db 中。这可行,我已经测试过了。

相关内容