centos6.2下vsftpd 虚拟主机配置

                       centos6.2下vsftpd 虚拟主机配置

    
   主机:centos 6.2
1>添加虚拟用户的用户及密码
   [root@localhost vsftpd]# vim db_user.txt
   写入如下,单行用户名,双行密码
     virtual1  
     abcd1234
     virtual2
     abcd1234
   2> 生成用户口令认证文件
       用户认证文件的生成需要安装额外的软件来实现,软件名为:db4-utils
     [root@localhost Packages]# rpm -ivh db4-utils-4.7.25-16.el6.i686.rpm 
     warning: db4-utils-4.7.25-16.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID     c105b9de: NOKEY
     Preparing...                ########################################### [100%]
package db4-utils-4.7.25-16.el6.i686 is already installed
     使用命令开始生成文件,文件名为:db_user.db
    [root@localhost vsftpd]# db_load -T -t hash -f db_user.txt db_user.db
3>为保证安全性可以把密码文件修改一下权限
     [root@localhost vsftpd]# chmod 600 db_user.*
 4> 编辑PAM认证文件,先把此文件备份一下
      [root@localhost vsftpd]# cp -p  /etc/pam.d/vsftpd  /etc/pam.d/vsftpd.bak
      编辑文件,把里面的内容全部删除之后再写入如下两句,如果系统是64位的,就把下面的lib修改成lib64就行了,注意,一定要把里面的内容给清除,不然的话是不成功的.
     [root@localhost vsftpd]# vim /etc/pam.d/vsftpd 
     auth required /lib/security/pam_userdb.so db=/etc/vsftpd/db_user
     account required /lib/security/pam_userdb.so db=/etc/vsftpd/db_user
5>FTP虚拟用户是需要一个系统用户的,这个用户不需要密码,也不需要登录,只提供一个登录目录.并且让这个目录对other用户拥有读写权限.
   [root@localhost vsftpd]# useradd -s /sbin/nologin code
   [root@localhost vsftpd]# chmod o+rw /home/code
6>修改vsftpd主配置文件,让系统支持虚拟用户,添加如下内容
  [root@localhost vsftpd]# vim vsftpd.conf
    guest_enable=yes
    guest_username=code
7>重启vsftpd服务器
   [root@localhost vsftpd]# service vsftpd restart
  关闭 vsftpd:                                              [确定]
  为 vsftpd 启动 vsftpd:                                    [确定]
8>开始测试
   在另一台linux下测试,首先在/home/code中写入一些内容,如 
    [root@localhost vsftpd]# echo "this is a test" > /home/code/code.txt
    使用另一台Linux连接
    [code@root ~]$ lftp [email protected]
    口令: 
    lftp [email protected]:~> ls       
    -rw-r--r--    1 0        0              15 Oct 25 07:55 code.txt
 
 9>测试成功!
  
  注:如果你在登录之后全出现如下情况的话,那么就是你的SELinux在起作用,SELinux阻止了你的登录
 
    lftp [email protected]:~> ls           
    ls: 登录失败: 500 OOPS: cannot change directory:/home/code
 
    我们可以直接关闭SELinux
    命令:/usr/sbin/setenforce 0
   也可以使用另一种方法
  

  这样就可以了....
 

你可能感兴趣的:(vsftpd,vsftpd虚拟主机)