centos搭建vsftpd,用户登录报:530 Login incorrect

最近在centos搭建vsftpd,在两台服务器上各部署了一套ftp,但是其中一台可以正常用户登录,另一台用户登录报:530 Login incorrect,两边部署明明是一模一样的,折腾了大半天,各种百度,最后通过查询系统安全日志文件,看到了/etc/shells有问题,然后对比了两台服务器的这个文件的权限类型,尝试了把它改成跟正常登录的那个一样权限,果然就可以登录了!

C:\Users\luo>ftp 192.193.4.96
连接到 192.193.4.96。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.193.4.96:(none)): ftp003
331 Please specify the password.
密码:
530 Login incorrect.

具体操作如下:

1、当然遇到无法登录首先是要检查用户和密码是否输入正确

2、再检查配置文件是否配置正确,主要是这三个文件:

  • # vim /etc/vsftpd/vsftpd.conf

  • # vim /etc/vsftpd/user_list

  • # vim /etc/vsftpd/chroot_list

3、然后检查系统安全日志,看返回日志,发现点端倪,但不确定是什么原因

pam_shells(vsftpd:auth): /etc/shells is either world writable or not a normal file

4、然后对比了两台服务器中的 /etc/shells 文件的权限类型,确有不一样

1)无法登录的服务器:这个类型是777(-rwxrwxrwx.

2)可以登录的服务器:这个类型是644(-rw-r--r--.

常用的linux文件权限:

444  -r--r--r--

600  -rw-------

644  -rw-r--r--

666  -rw-rw-rw-

700  -rwx------

744  -rwxr--r--

755  -rwxr-xr-x

777  -rwxrwxrwx

5、把无法登录的服务器的shells文件修改为644

# chmod -R 644 /etc/shells

6、在cmd中尝试登录,果然就正常了,至此,问题总算解决了。

C:\Users\luo>ftp 192.193.4.96
连接到 192.193.4.96。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.193.4.96:(none)): ftpuser
331 Please specify the password.
密码:
230 Login successful.

注:/etc/shells 是一个有效登陆shell的列表,在调用chsh改变登陆shell时,会查询这个文件。另外一些程序会根据这个文件来判断一个用户是否是有效用户,例如FTP服务会阻止那些shell不在 /etc/shells 里的用户登陆。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章