Linux 技术手札

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

Exit mobile version