zoukankan      html  css  js  c++  java
  • ubuntu vsftpd 530 Login incorrect 根本原因和解决方案

    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

  • 相关阅读:
    Map的迭代操作
    Vector/Arraylist与Linklist的区别
    Notepad++ 快捷键 大全
    集成 Tomcat 插件到 Eclipse 的过程
    十个最好的Java性能故障排除工具
    eclipse删除空行
    java解析xml文件四种方式
    Java解析XML文档(简单实例)——dom解析xml
    Log4j 2.0 使用说明
    根据引用jar包路径查找原JAR包
  • 原文地址:https://www.cnblogs.com/RXDXB/p/11498219.html
Copyright © 2011-2022 走看看