ubuntu vsftpd 530 Login incorrect 根本原因和解决方案

1 背景分析

ubuntu安装vsftpd一般使用:
sudo apt-get install vsftpd

参照其他网上教程的配置后,在账号、密码、主目录都是正确的情况下,可能会遇到账号登录提示 530 Login incorrect 的问题。

网络上有好多解决方案,例如修改/etc/vsftpd.conf文件 将pam_service_name=vsftpd 修改为 pam_service_name=ftp ,虽然能够解决这个问题,但是这种方法其实是错误的。这样由于/etc/pam.d/ftp文件不存在,等于是绕过了PAM。

2 vsftpd pam文件分析

/etc/pam.d/vsftpd 默认如下

# Standard behaviour for ftpd(8).
auth   required        pam_listfile.so item=user sense=deny file=/etc/ftpusers 
onerr=succeed
# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth   required        pam_shells.so

可能导致530错误的有
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

auth required pam_shells.so

2.1 /etc/ftpusers

auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
该配置项的含义是 /etc/ftpusers 中的用户禁止登陆,如果文件不存在在默认所有用户均允许登录. 所以确保用户没在这个文件内。

2.2 pam_shells.so

auth required pam_shells.so 配置项的含义为仅允许用户的shell为 /etc/shells
文件内的shell命令时,才能够成功

cat /etc/shells 
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

而创建ftp用户时,为了禁止ssh登录,一般多为/bin/false 、/usr/sbin/nologin 等,显然不是一个有效的bash,也就无法登录了。

3 解决方案

1、查看/etc/ftpusers ,确保账号没有在这个文件内。
2、修改/etc/pam.d/vsftpd
auth required pam_shells.so修改为->auth required pam_nologin.so 即可
3、重启vsftpd

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ftp 文件传输协议 跨平台 上传下载文件 vsftpd 工具:非常安全的文件传输协议;默认的命令端口21号,数据...
    柒夏锦阅读 9,585评论 1 9
  • 一、简介 FTP(文件传输协议)全称是:Very Secure FTP Server。 Vsftpd是linu...
    何苦_python_java阅读 4,932评论 0 0
  • 1.FTP简介 File Transfer Protocol 早期的三个应用级协议之一 基于C/S结构 双通道...
    尛尛大尹阅读 7,284评论 0 0
  • 秋阴不散叶黄落,枯荷静吟盛夏茂。 思得石城圆月下,今却同城如天涯。 原来南北近咫尺,两心断桥实难筑。 我思我错我悔...
    木易当兴阅读 1,454评论 0 1
  • 冬天的日子总是 冗长且凝滞 厚重且干燥 你搓搓手掌 吃腾着热气的饭 又到岁杪 才发现旧日里的豪言壮语 早已安静的蒙...
    貓花阅读 2,738评论 3 2

友情链接更多精彩内容