一、出现的问题
在 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