(RedHat)vsftpd配置虚拟用户无法登录的朋友请看此帖

范堡 发布于 2009/05/06 11:04
阅读 2K+
收藏 0

最近不少朋友遇到配置vsftpd虚拟用户后无法登录的问题( 530 Login incorrect),都是按照vsftpd的例子或网上的教程配置的,步骤完全一样,可就是登录不了。最近的几篇帖子如下:

我的vsftpd虚用户不能登陆,怎样修改呀!急!!!
http://bbs.chinaunix.net/forum/viewtopic.php?t=584845&show_type=

vsftpd虚拟用户问题,请帮帮忙
http://bbs.chinaunix.net/forum/viewtopic.php?t=558594&show_type=

VSFTPD本地用户成功,想搞PAM加DB的,哪位大哥成功了的?
http://bbs.chinaunix.net/forum/viewtopic.php?t=583872&show_type=

“按照搂主的方法配置,在centos-3上面, 虚拟用户,怎么配置都是提示 密码错误! 实在是想不到问题会出在哪里。” 
http://bbs.chinaunix.net/forum/viewtopic.php?t=561183&show_type=new&postdays=0&postorder=asc&start=20#3738430

我可能运气比较好,从未碰到这个问题,今天在帮sword_111看这个问题的时候,总结了一些东西,与大家分享,希望能解决以上朋友遇到的问题。

从sword_111的情况,我假设朋友们都是从源代码安装vsftpd,那么第一个要注意的事情是make编译之前看一下builddefs.h这个文件的内容
vsftpd-2.0.3这个版本里这个文件的内容是这样的:

# cat builddefs.h 

引用: #ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H

#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL



这里 #define VSF_BUILD_PAM 指定了要vsftpd支持pam,所以不要改成 #undef VSF_BUILD_PAM

检查完builddefs.h后,make编译,用ldd命令检查生成的vsftpd文件有没有加载/lib/libpam.so.0

# ldd vsftpd

       引用:  libpam.so.0 =>; /lib/libpam.so.0 (0x4001e000)
        libdl.so.2 =>; /lib/libdl.so.2 (0x40026000)
        libnsl.so.1 =>; /lib/libnsl.so.1 (0x40029000)
        libresolv.so.2 =>; /lib/libresolv.so.2 (0x4003e000)
        libutil.so.1 =>; /lib/libutil.so.1 (0x40050000)
        libcap.so.1 =>; /lib/libcap.so.1 (0x40053000)
        libc.so.6 =>; /lib/tls/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 =>; /lib/ld-linux.so.2 (0x40000000)



如果有,只要后面配置步骤正确,虚拟用户肯定没有问题。

如果没有,相信make过程中会出现这个Warning信息
引用: sysdeputil.c:1112: warning: `vsf_insert_uwtmp' defined but not used
sysdeputil.c:1151: warning: `vsf_remove_uwtmp' defined but not used 



解决办法:安装pam-devel
以RedHat9为例
# rpm -ivh pam-devel-0.75-48.i386.rpm


安装后,
# make clean 


# make

再检查vsftpd,肯定有libpam.so.0了

这样再按照正确的配置方法去配置,虚拟用户肯定没有问题。


最后,感谢sword_111提供试验的环境 :)



加载中
0
E
EVA140520

非常感谢,终于解决问题了。

返回顶部
顶部