用linux命令创建了一个用户,但是这个用户用FTP一直连不上,都是报530 Login authentication failed错误。开始以为是密码错误,但是改了又改还是不行。用控制面板添加的用户就可以登陆,找了很多资料都没有真正可以解决的方法,只有自己摸索了。

  最终的方法其实很简单,原因是proftpd没有这个用户,所以登陆不上。只要在proftpd的目录/etc/proftpd下添加一个以这个用户名为文件名的文件,文件内容写上这个用户的资料。

如我的用户为mysqlback,就添加一个以mysqlback的文件,文件内容如下:
mysqlback:$6$JuSegpQU$StNSHJ1NsXk3Adf8cBii2rzmS8IJsZPHKGuGGgzdWHNHi6TroGfKvc4RQ/55OMjO9oGydKGfG.:32012:32014::/home/mysqlback:/usr/local/cpanel/bin/jailshell
mysqlback:$6$JuSegpQU$StNSHJ1NsXk3Adf8cBii2rzmS8IJsZPHKGuGGgzdWHNHi6TroGfKvc4RQ/55OMjO9oGydKGfG.:32012:32014:mysqlback:/usr/local/apache/domlogs/mysqlback:/bin/ftpsh
~
  提示:linux用户密码采用单向加密算法,加密后仅仅在系统上储存加密后的密码,对于旧的系统一般存在/etc/passwd文件里,新的系统一般存在/etc/shadow文件里,未经加密的密码文件从来不被储存在系统里。当用户登录的时候,系统把用户的输入密码使用相同的加密算法得到的结果再和密码文件(/etc/passwd或者/etc/shadow)里的结果相比较。proftpd从这个复制对应的加密密码过去就可以了!

  /etc/passwd或者/etc/shadow文件内容解释图:

/etc/passwd或者/etc/shadow文件内容解释