红联Linux门户
Linux帮助

vsftpd验证问题一星期了急啊?

发布时间:2009-06-01 23:04:05来源:红联作者:RedHat90
小第学了 一个月了 装的是redhat as5.0 企业版的
用光盘里面的vsftpd2.0.5rpm 包安装的, 现在什么都搞好了就虚拟用户配置不能使用.
使用的是pam db验证的 不加下面一条 是能正常的 但是加了就不行了.
/ect/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd_user_conf //定义虚拟用户配置文件目录
里面只只要加上这一条就不能验证了
我按照下面的方法来安装的
@@ 第七步:建立每个用户的根目录、配置文件的目录和配置文件

# mkdir /home/vsftpd/test1
# mkdir /etc/vsftpd_user_conf
# vi /etc/vsftpd_user_conf/test1 文件内容如下

local_root=/home/vsftpd/test1
write_enable=YES //可写
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

# vi /etc/vsftpd_user_conf/test2 文件内容如下

local_root=/home/vsftpd/test1
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

# chmod 700 /home/vsftpd/test1

操作完全一模一样 但是就是不行很郁闷啊!
小弟实在不知道哪错了 请求各位指点一二啊!
文章评论

共有 5 条评论

  1. RedHat90 于 2009-06-03 13:30:43发表:

    [i=s] 本帖最后由 RedHat90 于 2009-6-3 13:33 编辑 [/i]

    是这样的 我服务器安装的是 rpm 2.0.5 版本的vsftpd
    安装好后也安装了db 所相关的东西
    使用pam db 来验证, 这一点都没问题 关键是使用用户配置这里出了问题.就是每个用户单独的配置文件

    下面是我按照书上配置的
    @@@ 配置
    这样就安装完成了,那么我们开始进行简单的配置

    对于用DB库存储用户名及密码的方式来说:

    @@ 第一步: 查看系统是否有相应软件包(redhat的AS4已安装)
    # rpm -qa | grep db4
    db4-devel-4.2.52-7.1
    db4-4.2.52-7.1
    db4-utils-4.2.52-7.1

    @@ 第二步: 建立一个logins.txt的文件,单行为用户名,双行为密码,例如
    # vi /tmp/logins.txt
    内容如下:
    test1
    12345
    test2
    12345


    @@ 第三步: 建立数据库文件并设置文件属性
    # db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db
    # chmod 600 /etc/vsftpd_login.db
    # rm /tmp/logins.txt ## 删除密码文件

    @@ 第四步: 建立认证文件(默认是没有该文件的)
    # vi /etc/pam.d/ftp 插入如下两行
    auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
    account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

    @@ 第五步: 建立一个虚拟用户
    ## 这个用户将会是guest 用户 在/etc/vsftpd.conf 的guest_username=vsftpd 定义
    useradd -d /home/vsftpd -s /sbin/nologin vsftpd

    只要更改这个虚拟用户的目录,那么ftp登录之后的目录也就随之更改
    ls -ld /home/vsftpd
    drwx------ 3 vsftpd vsftpd 1024 Jun 6 22:55 /home/vsftpd/

    @@ 第六步: 编写配置文件 (/etc/vsftpd.conf) 后面打星号的为必需添加
    # vi /etc/vsftpd.conf
    listen=YES // 使用standalone启动vsftpd **重要自己,自己添加
    listen_port=2121 ## FTP端口 ***
    max_clients=100 //可接受的最大连接数
    max_per_ip=5 //每个IP最大的连接数
    local_max_rate=5120000 //本地用户的传输比率(b/s)
    tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
    anonymous_enable=NO //禁用匿名账户
    local_enable=YES //PAM方式此处必须为YES ***
    write_enable=NO //全局控制不可以上传
    anon_upload_enable=NO //匿名用户不可以上传
    anon_mkdir_write_enable=NO //匿名用户不可以建目录
    anon_other_write_enable=NO //匿名用户不可以修改
    chroot_local_user=YES //不充许用户更改根目录 ***
    guest_enable=YES
    guest_username=vsftpd //这两行的意思是采用虚拟用户形式 就是创建的FTP目录
    virtual_use_local_privs=YES //虚拟用户和本地用户权限相同 ***重要
    user_config_dir=/etc/vsftpd_user_conf //定义虚拟用户配置文件目录 [font=黑体]***{我的问题现在!!!!!!!!!!!!!!!!!!!!!!!问题就在这里 加上这条就无法登陆了 也就是说用户和密码是不能验证了.}[/font]
    pasv_enable=YES //建立资料联机采用被动方式 ***
    pasv_min_port=30000 //建立资料联机所可以使用port 范围的上界,0表示任意。默认值为0。 ***
    pasv_max_port=30999 //建立资料联机所可以使用port 范围的下界,0表示任意。默认值为0。 ***
    xferlog_enable=YES //开启日志记录
    xferlog_file=/var/log/vsftpd.log //日志存放文件位置
    idle_session_timeout=600 //空闲连接超时
    data_connection_timeout=120 //数据传输超时
    accept_timeout=60 //PAVS请求超时
    connect_timeout=60 // PROT模式连接超时

    @@ 第七步:建立每个用户的根目录、配置文件的目录和配置文件

    # mkdir /home/vsftpd/test1
    # mkdir /etc/vsftpd_user_conf
    # vi /etc/vsftpd_user_conf/test1 文件内容如下

    local_root=/home/vsftpd/test1
    write_enable=YES //可写
    anon_world_readable_only=NO
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    anon_other_write_enable=NO

    # vi /etc/vsftpd_user_conf/test2 文件内容如下

    local_root=/home/vsftpd/test1
    write_enable=NO
    anon_world_readable_only=NO
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    anon_other_write_enable=NO

    # chmod 700 /home/vsftpd/test1
    # chown vsftpd.vsftpd /home/vsftpd/test1

    这样,test1用户可以下载、上传、修改 /home/vsftpd/test1里的文件,而test2用户只能下载/home/vsftpd/test1里面的文件。

    第八步: 启动程序,测试
    # /usr/local/sbin/vsftpd /etc/vsftpd.conf

    我试过了不能访问单独访问用户配置文件.

  2. jagub 于 2009-06-02 09:51:33发表:

    引用:
    这个版本太老,建议下载安装珠穆朗玛200904221,红旗6SP2,UBUNTU9。04,OPENSUSE11。2,FEDORA11等操作系统中的任何一款。
    乌麦尔 发表于 2009/6/2 00:24

    不知道的话不要乱讲。

    LZ能不能讲得在详细一些,什么现象。
    还有你具体的配置文件,方法

  3. RedHat90 于 2009-06-02 08:02:43发表:

    我是用来架设服务器的 web 服务器的 怎么可以换那种个人版的呢
    RHEL 5.0 的版本 应该不老的啊

  4. 乌麦尔 于 2009-06-02 00:24:30发表:

    这个版本太老,建议下载安装珠穆朗玛200904221,红旗6SP2,UBUNTU9。04,OPENSUSE11。2,FEDORA11等操作系统中的任何一款。

  5. redfans 于 2009-06-02 00:02:42发表:

    帮不上忙