在配置vsftpd的過程中,聽信了網上的讒言,把vsftpd配了一遍,發現配完,虛擬用戶和本地用戶不能共存,即虛擬用戶可以登錄ftp,但是本地用 戶不能登錄的ftp。折騰了很久,包括上網找過很多內容都找不到解決方法,大家貌似都沒有這樣的問題,或者找不到解決辦法(在看衆多教程中貌似有看到過和 本方法一樣的配置,但是那份內容裏面完全沒有提到/etc/pam.d/vsftpd裏面爲什麼要這樣寫)。在洗澡過程中想了想,既然本地用戶無法登錄, 那應該是pam驗證的時候就沒有給本地用戶過。實驗證明人在洗澡的時候是最清醒的時候。哈哈!回來實驗,發現如果把/etc/pam.d/vsftpd 中的
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
注 釋掉,然後把裏面其它的內容都打開註釋(網上大部分教程教建立虛擬用戶時,都說把上面兩句加入/etc/pam.d/vsftpd中,然後把裏面的其它東 西註釋掉),這時候再嘗試,發現本地用戶能登錄!!!這也證明了是pam模塊認證的問題讓虛擬用戶和本地用戶不能共存。所以就去了解了一下pam配置的內 容,如下網址:
http://www.ibm.com/developerworks/cn/linux/l-pam/
裏面提到:
Required:堆棧中的所有 Required 模塊必須看作一個成功的結果。如果一個或多個 Required 模塊失敗,則實現堆棧中的所有 Required 模塊,但是將返回第一個錯誤。
也 就意味着,required需要所有內容都滿足才行,當我們前兩條配置虛擬用戶登錄驗證通過後,繼續向下面的配置條目進行驗證,驗證是否是本地用戶時結果 發現不是,又因爲,驗證本地用戶的control_flag(見上網址中解釋)也爲required,所以這時候,就會返回錯誤,也即驗證不成功。
所以我們不能同時設置虛擬用戶和本地用戶的control_flag爲required。按照上面的網址所說:
Sufficient:如果標記爲 sufficient 的模塊成功並且先前沒有 Required 或 sufficient 模塊失敗,則忽略堆棧中的所有其餘模塊並返回成功。
我們可以把虛擬用戶的驗證配置放在最前面,且把control_flag設爲sufficient。這樣的話,如果遇到是虛擬用戶,那麼可以通過驗證,如果是本地用戶,忽略掉sufficient的兩條配置規則,只要滿足required就行,所以也能通過驗證。
如下爲/etc/pam.d/vsftpd的內容:
#%PAM-1.0
auth sufficient pam_userdb.so db=/etc/vsftpd/vuser_passwd
account sufficient pam_userdb.so db=/etc/vsftpd/vuser_passwd
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
上 面兩行爲後面加上,虛擬用戶pam認證需要的配置條目,下面爲原來vsftpd的認證配置規則,可以看到,本地用戶用的是password-auth,從 這裏可以看出如果要虛擬用戶和本地用戶共存,兩部分都不能註釋。網上說的註釋掉下面的部分,這種情況本地用戶都不能登錄。
vsftpd虛擬用戶和本地用戶不能共存的解決方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
vsftpd+pam_mysql+shell
wjp13671142513
2019-02-23 13:37:36
vsftpd虛擬用戶認證配置(vsftpd+pam+mysql)
GumpT
2019-02-23 00:25:45
vsftpd+pam_mysql 虛擬用戶配置
wjp13671142513
2019-02-23 13:37:36
文件共享服務之vsftpd的配置與應用
qinyihao
2019-02-23 13:27:44
vsftpd賬號管理(1)
fengyinbo923
2019-02-23 13:16:22
vsftpd 虛擬賬號管理 (2)
fengyinbo923
2019-02-23 13:16:22
linux安裝vsftpd
abcbig
2019-02-23 00:33:00
vsftpd服務器配置
無我5520
2019-02-23 00:23:12
vsftp之配置管理企業ftp服務
menke007
2019-02-22 22:57:09
vsftpd
zhangfei_kr
2019-02-22 22:44:47
vsftpd
18503034201
2019-02-22 22:42:36
vsftp安裝
bjjasonzhao
2019-02-22 22:37:13
vsftpd虛擬用戶配置
安安安安森
2019-02-22 23:08:01