作者:手机用户2502876273 | 来源:互联网 | 2014-05-28 09:06
之前一直安装完vsftpd之后一直只用一个帐号登录!今天晚上跟小狼同学谈论之中我自己也试了下,结果出现成功添加用户但无法登录的情况!如下:[右]正在连接到linode-test-IP69.164.198.23PORT21[右]已连接到linode-test[右]220Welcometojiucool.comFTPser
之前一直安装完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当中目录权限是相当严格的,在使用时大家一定要注意啦!一个小小失误足以让你的帐号无法登录!