2026/7/21 17:20:16

解决Openeuler vsftpd 登录失败530问题:从 /sbin/nologin 与 /etc/shells 配置冲突说起

解决Openeuler vsftpd 登录失败530问题:从 /sbin/nologin 与 /etc/shells 配置冲突说起 一、出现的问题在 OpenEuler 系统中搭建 vsftpd FTP 服务器时为了增强安全性与权限管理的规范性我们通常会为其创建一个独立的 FTP 专用用户。useradd -d /home/ftpuser -s /sbin/nologin ftpuser但是当我们配置好/etc/vsftpd/vsftpd..conf 文件时尝试登入会出现这个530报错二、思考如何解决我们一般会认为可能时我们错误把创建的ftpuser用户加入了ftpusers/user_list 两个文件之中如果这样我们直接在文件中删除这个用户即可。但如果在尝试修改文件内容后问题依然存在我们该如何解决呢原因在于我们通过/sbin/nologin创建了用户但/etc/shells文件中并未包含/sbin/nologin这一 shell同时/etc/pam.d/vsftpd配置文件中存在auth required pam_shells.so这条校验命令该命令会限制用户使用未在/etc/shells中注册的 shell 进行登录。三、解决方案1、直接禁用pam_shells.so2、在/etc/shells中添加缺少的/sbin/nologin3、不使用 /sbin/nologin创建用户采用默认shell/bin/bashuseradd -d /home/ftpuser但为禁止ftp用户的ssh登入可通过 SSH 配置明确禁止vim /etc/ssh/sshd_config #添加以下内容 DenyUsers ftpuser #重启ssh服务 systemctl restart sshd