CentOS 6.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 virtual1@192.168.1.102
    口令:
    lftp virtual1@192.168.1.102:~> ls     
    -rw-r--r--    1 0        0              15 Oct 25 07:55 code.txt
 
 9>测试成功!
 
  注:如果你在登录之后全出现如下情况的话,那么就是你的SELinux在起作用,SELinux阻止了你的登录
 
    lftp code@192.168.1.102:~> ls         
    ls: 登录失败: 500 OOPS: cannot change directory:/home/code
 
    我们可以直接关闭SELinux
    命令:/usr/sbin/setenforce 0
  也可以使用另一种方法

CentOS 6.2下vsftpd 虚拟主机配置


  这样就可以了....

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/31484410074bffdb12c582ac87aefdef.html