Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45187
  • 博文数量: 25
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 21:33
文章分类
文章存档

2011年(2)

2010年(6)

2009年(5)

2008年(12)

我的朋友

分类: LINUX

2010-05-08 10:52:36

最近不少朋友遇到配置vsftpd虚拟用户后无法登录的问题( 530 Login incorrect),都是按照vsftpd的例子或网上的教程配置的,步骤完全一样,可就是登录不了。总结了一些东西,与大家分享,希望能解决以上朋友遇到的问题。

我假设朋友们都是从源代码安装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
#ps aux|grep vsftpd
#kill -9 10910
#cp -p vsftpd /usr/local/sbin/vsftpd
#ldd /usr/local/sbin/vsftpd
#/usr/local/sbin/vsftpd &

再检查vsftpd,肯定有libpam.so.0了
#ldd /usr/local/sbin/vsftpd

这样再按照正确的配置方法去配置,虚拟用户肯定没有问题。
阅读(1525) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~