升級 CentOS 7.6 後, FTP 不能登入

RHEL 7.6 已經釋出超過一個月, 昨天 CentOS 7.6 剛釋出, 將伺服器升級到 CentOS 7.6.

升級後好像沒什麼問題, 但後來發現原來的 vsftpd 不能登入, 即使帳號及密碼正確也不能登入, 總是說密碼錯誤。然後關閉 vsftpd, 安裝 proftpd 也是相同結果

後來找到問題所在, 是因為升級的其中一個套件 setup-2.8.71-10.el7 所致。由於不開放使用者登入 ssh/telnet, 只開放 ftp, 所以使用者的 shell 設定為 /sbin/nologin, 而在 setup-2.8.71-10.el7 以的版本, /sbin/nologin 是包括在 /etc/shells 裡面, 現在 /etc/shells 檔案內已經將 /sbin/nologin 刪除。


最快速的解決方法是, 手動編輯 /etc/shells 檔案, 加入 /sbin/nologin, 儲存後便可以成功登入了, 但這便會存在一個安全級別較低的風險: https://access.redhat.com/errata/RHSA-2018:3249

另一個解決方法需要花點時間, 是將所有 FTP 使用者的 shell, 從 /sbin/nologin 改為 /bin/bash, 如果帳號較多需要寫一個 Shell Script 實現, 然後設定 sshd 禁步那些帳號登入 SSH.


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.