解決vsftpd中虛擬用户和系統用户不能共存的問題

按照網上的教程設置虛擬用户之後會發現系統賬户登錄不上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驗證後就不會繼續向下驗證,虛擬用户登錄就不能實現了。所以才要把新增配置內容放在最前方,驗證完虛擬賬户繼續驗證系統賬户,從而實現虛擬賬户與本地賬户共存。

2 thoughts on “解決vsftpd中虛擬用户和系統用户不能共存的問題”

  1. 沒用太大作用和意義。
    因為開啓虛賬户後,普通賬户即使能登錄,登錄身份也會被映射成虛擬賬户。。。

Leave a Reply to aa Cancel reply

Your email address will not be published. Required fields are marked *

Captcha Code