CentOS 上的 FTP 用户名带有“@”符号

CentOS 上的 FTP 用户名带有“@”符号

我们之前的 Web 服务器是基于 Windows 的,并且托管了多个域。因此,如果名为“username”的用户想要通过 FTP 登录到“example.com”,他们会提供其用户名“[电子邮件保护]“。

从那时起,我们就修改了一些东西;我们的网络服务器现在使用的是 CentOS 6,我们的应用程序不再依赖 FTP。但是,可能仍有一些落后者没有更新,我很好奇是否可以设置一些 FTP 用户来模拟旧的行为,有点像向后兼容,直到我们知道没有人再依赖它。尝试创建一个名称中带有“@”的用户会导致一些可预测的结果:

useradd: invalid user name '[email protected]'

强制系统接受这样的名称可能无法,但我不知道当用户登录时是否有任何系统可以处理类似“虚拟域”的事情,这与我们在 Windows 上所做的类似。

答案1

由于您正在使用 proftpd,因此您应该能够通过创建来做到这一点虚拟用户然后使用密码程序来创建您的用户名。

ftpasswd --passwd -name viain@localhost --uid=10001 --home=/home/viain --shell=/bin/false

这使得

viain@localhost:$1$nv2Ze6Tv$1EPpzsNBxkiwpAbBV9QMv1:10001:10001::/home/viain:/bin/false

进入 AuthUserfile

答案2

CentOS 上的 FTP 用户是否可以@在用户名中包含符号完全取决于为 FTP 提供服务的守护进程。例如,@如果在文件中正确启用了该选项,Midnight Commander 允许在用户名中包含符号.netrc。在某些 FTP 守护进程中,@如果连接字符串@用加号替换,则允许在用户名中包含符号。


赫普·德普

这不是 proftp 的问题,而是用户名不被接受的问题useradd。不要使用useraddvipw而是使用 来编辑您的密码文件并使用带有2符号的用户名。FTP 没有自己的用户群,而是使用文件/etc/passwd的用户列表。

关于添加用户名的一些说明useradd

类似地,如果用户名已经存在于外部用户数据库(例如 NIS 或 LDAP)中,则 useradd 将拒绝用户帐户创建请求。

用户名最多只能包含 32 个字符。

此外,用户名必须以字母数字字符开头。

相关内容