解决Openeuler vsftpd 登录失败530问题:从 /sbin/nologin 与 /etc/shells 配置冲突说起
2026/7/21 17:20:07 网站建设 项目流程

一、出现的问题

在 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.so

2、在/etc/shells中添加缺少的/sbin/nologin

3、不使用 /sbin/nologin创建用户

采用默认shell/bin/bash

useradd -d /home/ftpuser

但为禁止ftp用户的ssh登入,可通过 SSH 配置明确禁止:

vim /etc/ssh/sshd_config #添加以下内容 DenyUsers ftpuser #重启ssh服务 systemctl restart sshd

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询