1. 程式人生 > >關於vsftpd的530 Login incorrect錯誤

關於vsftpd的530 Login incorrect錯誤

安裝的vsftpd,  配置檔案是根據以前整理的一個vsftpd.conf, 使用系統的使用者來登陸ftp, 配置檔案中有

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/usr/local/etc/vsftpd.chroot_list

預設把不允許訪問上級目錄的ftp使用者解除安裝vsftpd.chroot_list下, 然後配置完畢, 新建立的ftp使用者也可以正常登陸, 但是自從重啟了一次vsftpd之後就怎麼也無法登陸了… 一直報”530 Login incorrect”錯誤, 我就鬱悶, google,baidu了半天, 最後終於找到一點思路, 似乎和pam有關係, 最後終於在老外的一個站上發現了:

關鍵點一:
Your vsftpd.conf should look like this:-

#anonymous_enable=YES
local_enable=YES
write_enable=YES
pam_service_name=vsftpd
userlist_enable=YES

Also check /etc/vsftpd/user_list and /etc/ftpusers

This will allow the local users to access their home directories via ftp

其實就是少了一行:

pam_service_name=vsftpd

關鍵點二

其他的解決思路:
1、被動模式的問題
2、有時候可能是主目錄的問題,比如你的FTP主目錄是/data/www,但是使用者vsftpd的在/etc/passwd不是這個目錄也會出問題,記住檢視日誌。(我的FTP報這個錯是因為我把/etct/passwd下FTP使用者的/sbin/nologin改成了/bin/bash,改回原來的禁止登入伺服器就OK )

關鍵點三

在網上看到這問題還有一種原因是說伺服器系統是64位的。
這種情況只需要把 /etc/pam.d/下面的vsftpd裡面的/lib 修改為/lib64

cd /etc/pamd.d

vi vsftpd

然後儲存退出

service vsftpd restart就ok

不過我的系統雖然是64位。但是卻沒有找到/lib這東西

再網上再找過一些資料後

發現

只需要把/etc/pam.d/vsftpd檔案中的

auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

這一句註釋掉就OK了。前面加一個#好

重啟vsftpd服務。

或者 把 auth required pam_shells.so 註釋掉就好

關鍵點四

官網維護伺服器後,FTP登入出現如下提示:
Login failure: 530 Login incorrect

求助線上客服未解決問題。

檢視secure日誌檔案:
tail -f /var/log/secure

passwd: pam_unix(passwd:chauthtok): password changed for esoft
Jun 19 00:32:48 ip-72-16-9-18 vsftpd: pam_listfile(vsftpd:auth): Couldn’t open /etc/vsftpd/ftpusers
Jun 19 00:32:48 ip-72-16-9-18 vsftpd: pam_shells(vsftpd:auth): /etc/shells is either world writable or not a normal file

於是在root下執行:
cp /etc/vsftpd.ftpusers /etc/vsftpd/ftpusers
chomd 644 /etc/shell