按照網上的教程設定虛擬使用者之後會發現系統賬戶登入不上ftp,檢視日誌顯示認證失敗。由此懷疑問題出在pam上。
百度搜尋之後找到問題原因,是因為設定虛擬使用者的時候註釋掉了pam中關於系統賬戶認證的配置選項,所以導致系統賬戶驗證失敗。
系統使用者與虛擬使用者共存的正確配置方法:
編輯/etc/pam.d/vsftpd
在原內容前加入
auth sufficient pam_userdb.so db=/etc/vsftpd/db#db=後面接使用者資料庫檔案地址 account sufficient pam_userdb.so db=/etc/vsftpd/db#db=後面接使用者資料庫檔案地址
注意不要註釋原始檔內容!直接在原始檔內容前加入上述內容!
細心一點就會發現上述兩段配置內容中將網上設定虛擬使用者時原本的required變成了sufficient,同時強調了新增配置內容必須在最前方。
這是因為required在驗證了一次之後就不會繼續驗證下去,而sufficient在驗證後還會繼續向下驗證。
所以這就是為什麼新增的配置選項中用sufficient替換了required,因為都使用required註定只能驗證一種登入方式。而如果把新增配置內容加到原配置檔案後方的話在前面原本的系統使用者的required驗證後就不會繼續向下驗證,虛擬使用者登入就不能實現了。所以才要把新增配置內容放在最前方,驗證完虛擬賬戶繼續驗證系統賬戶,從而實現虛擬賬戶與本地賬戶共存。
沒用太大作用和意義。
因為開啟虛賬戶後,普通賬戶即使能登入,登入身份也會被對映成虛擬賬戶。。。
研究了好一段時間,沒找到官方哪裡有說明,但實際是會出現這種情況。