升级 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