關於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