我们以前的网站服务器是基于Windows的,它托pipe了多个域名。 因此,如果名为“用户名”的用户想通过FTPlogin到“example.com”,他们将提供他们的用户名为“[email protected]”。
从那时起我们就修改了一些东西 我们的networking服务器现在正在使用CentOS 6,我们的应用程序不再依赖任何FTP。 但是,还有一些没有更新的散户,我很好奇,是否有可能build立一些FTP用户来模仿旧的行为,有点向下兼容,直到我们知道没有人依靠它了。 尝试在名字中创build一个带有“@”的用户会导致一定的可预测性:
useradd: invalid user name '[email protected]'
强制系统接受这样的名称可能是不可能的,但是我不知道在用户login时是否有类似于这些“虚拟域”的系统,这与我们在Windows上做的事情类似。
正如你使用proftpd那么你应该能够通过创build虚拟用户 ,然后使用ftpasswd程序来创build你的用户名。
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
CentOS上的FTP用户可以在用户名中包含@
符号,完全取决于服务于FTP的守护进程。 例如,如果在.netrc
文件中正确启用了该选项,则Midnight Commander在用户名中允许使用@
符号。 在某些FTP守护进程中,如果连接string用加号replace@
,则允许@
符号在用户名中。
HERP DERP
这不是proftp的问题,这是用户名不能被useradd
接受的问题。 不要使用useradd
,而是使用vipw
来编辑你的passwd文件,并使用用户名和一个2
符号。 FTP没有自己的用户库,而是使用/etc/passwd
文件的用户列表。
关于使用useradd
添加用户名的一些注意事项:
同样,如果用户名已经存在于外部用户数据库(如NIS或LDAP)中,则useradd将拒绝用户帐户创build请求。
用户名最多只能有32个字符。
此外,用户名必须以字母数字字符开头。