一、出现的问题

在 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
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐