解决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.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
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)