Centos添加FTP用户指定解释器为/sbin/nologin导致FTP无法登录(530 Login incorrect)的问题

本文主要是介绍Centos添加FTP用户指定解释器为/sbin/nologin导致FTP无法登录(530 Login incorrect)的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


Centos vsftpd 配置时,添加FTP用户时为了禁止ssh登录、仅用于FTP登录而指定解释器为/sbin/nologin,但用该用户进行FTP登录时报错 530 Login incorrect.

[root@localhost data]# useradd ftpuser03 -d /data/ftp/ftpuser03 -s /sbin/nologin
[root@localhost data]# passwd ftpuser03

去掉用户主目录的写权限、并创建独立的可写子目录
[root@localhost data]# chmod u-w /data/ftp/ftpuser03
[root@localhost data]# mkdir -p /data/ftp/ftpuser03/write
[root@localhost data]# chown -R ftpuser03:ftpuser03 /data/ftp/ftpuser03/write 

再次FTP客户端登录:
登录失败,报错 530 Login incorrect.

[root@localhost data]# ftp 192.168.1.82
Connected to 192.168.1.82 (192.168.1.82).
220 (vsFTPd 3.0.2)
Name (192.168.1.82:root): ftpuser03
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> 


最终定位原因为:
vsftpd 默认会检查用户的 shell,如果用户的 shell 在 /etc/shells 没有记录,则无法登陆FTP:

查看 ftpuser03 用户的解释器:
[root@localhost data]# cat /etc/passwd |grep ftpuser
ftpuser01:x:1001:1001::/data/ftp/ftpuser01:/bin/bash
ftpuser02:x:1002:1002::/data/ftp/ftpuser02:/bin/bash
ftpuser03:x:1003:1003::/data/ftp/ftpuser03:/sbin/nologin
[root@localhost data]# 

执行 chsh -l 命令查看所有的解释器:
[root@localhost data]# chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
[root@localhost data]# 


解决办法:
在 /etc/shells 文件里面添加用户的 shell(解释器)
[root@localhost data]# 
[root@localhost data]# echo '/sbin/nologin' >> /etc/shells 
[root@localhost data]# 
[root@localhost data]# chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/sbin/nologin
[root@localhost data]# 

再次登录成功、问题解决:
[root@localhost data]# ftp 192.168.1.82
Connected to 192.168.1.82 (192.168.1.82).
220 (vsFTPd 3.0.2)
Name (192.168.1.82:root): ftpuser03
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> 

这篇关于Centos添加FTP用户指定解释器为/sbin/nologin导致FTP无法登录(530 Login incorrect)的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/881814

相关文章

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM