pam驗證出了問題,nologin使用者無法使用shell登陸。解決辦法如下:
1、查詢pam驗證檔案的位置(vsftpd配置檔案最底部)
sudo vim /etc/vsftpd/vsftpd.conf
應該會看到pam_service_name=vsftpd
使用find命令查詢檔案位置
sudo find / -name "vsftpd"
在出現的結果中,找出帶pam的 ——> /etc/pam.d/vsftpd
2、修改pam認證方式
sudo vim /etc/pam.d/vsftpd
找到:auth required pam_shells.so
在之前加上#號註釋掉。
3、重啟vsftpd
sudo systemctl restart vsftpd。
補充:
1、第一步可直接跳過,加上去的原因是:
無法登陸時經常出現的530錯誤,網上有很多奇怪的處理方式,要麼不管用,要麼安全性較差,特別是建議修改/etc/passwd檔案中的 /sbin/nologin為/bin/bash的,這將使該使用者可以直接登陸shell而進入系統。還有一些說是更改vsftpd.conf中的pam_service_name等於任意值,經驗證這是絕對不行的(你可將所有配置都調整正確,只修改此處進行試驗)。寫在這裡,以便更多人看到後能夠節約時間。
2、與vsftpd配置無關但與ftp配置相關的sftp。
vsftpd與sftp的配置幾乎不相關(關聯銜接處在:vsftpd.conf中設定ssl_enable後,就轉交由openssh的vsftpd處理驗證了)。在後續配置sftp時,驗證方式是在/etc/ssh/sshd_config檔案中修改的。在配置sftp出現登陸成功後又退出的錯誤時,要跳出vsftpd來思考。附圖參考
pam驗證出了問題,nologin使用者無法使用shell登陸。解決辦法如下:
1、查詢pam驗證檔案的位置(vsftpd配置檔案最底部)
sudo vim /etc/vsftpd/vsftpd.conf
應該會看到pam_service_name=vsftpd
使用find命令查詢檔案位置
sudo find / -name "vsftpd"
在出現的結果中,找出帶pam的 ——> /etc/pam.d/vsftpd
2、修改pam認證方式
sudo vim /etc/pam.d/vsftpd
找到:auth required pam_shells.so
在之前加上#號註釋掉。
3、重啟vsftpd
sudo systemctl restart vsftpd。
補充:
1、第一步可直接跳過,加上去的原因是:
無法登陸時經常出現的530錯誤,網上有很多奇怪的處理方式,要麼不管用,要麼安全性較差,特別是建議修改/etc/passwd檔案中的 /sbin/nologin為/bin/bash的,這將使該使用者可以直接登陸shell而進入系統。還有一些說是更改vsftpd.conf中的pam_service_name等於任意值,經驗證這是絕對不行的(你可將所有配置都調整正確,只修改此處進行試驗)。寫在這裡,以便更多人看到後能夠節約時間。
2、與vsftpd配置無關但與ftp配置相關的sftp。
vsftpd與sftp的配置幾乎不相關(關聯銜接處在:vsftpd.conf中設定ssl_enable後,就轉交由openssh的vsftpd處理驗證了)。在後續配置sftp時,驗證方式是在/etc/ssh/sshd_config檔案中修改的。在配置sftp出現登陸成功後又退出的錯誤時,要跳出vsftpd來思考。附圖參考