vsftpd服务器添加用户后无法登录问题的解决办法

发布时间:2019-09-14编辑:脚本学堂
vsftpd是linux系统中较常用的ftp软件,遇到一个问题:在添加用户后,提示无法登录,这里分享下解决方法,有遇到类似问题的朋友作个参考吧。

本节内容:
如何解决vsftpd服务器添加用户后无法登录的问题?
    
安装完vsftpd 之后,添加用户也成功,但无法登录,多么痛的一件事哦。

连接实况:
 

[右] 正在连接到 linode-test -> IP=69.164.198.23 PORT=21
[右] 已连接到 linode-test
[右] 220 Welcome to "jiucool.com" FTP service.
[右] USER jiucool
[右] 331 Please specify the password.
[右] PASS (隐藏)
[右] 500 OOPS: cannot change directory:/home/jiucool/user0
[右] 连接失败

经搜索,找到网上的解决办法是:
在终端输入命令:
 

复制代码 代码示例:
setsebool ftpd_disable_trans 1
service vsftpd restart
 

以上的方法,没有解决我所遇到的问题!

我添加用户的方法如下:
 

复制代码 代码示例:
#mkdir /home/jiucool/user0
#useradd -d /home/jiucool/user0 jiucool
 

(添加用户jiucool至家目录/home/jiucool/user0,开放SSH权限)
#passwd jiucool
然后,无法登录FTP。

原因分析:
由于执行上面命令时,用的root帐户,所以创建的目录所有者是root,所有组也是root,且默认权限为700。
如此,新添加的用户肯定是登录不上FTP了。

解决方法:
只要将user0目录 所有者及所有组修改为你添加的用户即可。

这里补充下:/bin/false和/sbin/nologin的差别,发现如果想要用false在禁止login的同时允许ftp,则必须在/etc/shells里增加一行/bin/false。

例如:
 

复制代码 代码示例:
[root@nginx conf]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
 

linux当中目录权限很严格,因此一个小失误,就会造成帐号无法登录! Linux系统的安全也基于此。