VSFTPD虚拟用户


        所有的虚拟用户会统一映射为一个指定的系统帐号;访问共享位置即为此系统帐号的家目录各虚拟用户可赋予不同的访问权限,通过匿名用户的权限控制参数进行指定。

 

1、创建虚拟用户的帐号密码数据库文件

    a、创建帐号密码文件

        格式:奇数行为帐号,偶数行为密码

[root@localhost~]# vim /etc/vsftpd/vusers.list

test1     #用户

123456   #密码

test2   

123456

test3

123456

 

    b、将该文件转换为二进制数据库文件,这里需要借助db4工具实现;

            [root@localhost ~]# yum installdb4 –y   #安装db4工具

            [root@localhost ~]# cd /etc/vsftpd/  

            [root@localhost vsftpd]# db_load -T -t hash-f vusers.list vusers.db   #生成数据库文件

            [root@localhost vsftpd]# chmod 600vusers.*    #修改权限,保证密码文件安全

2、创建需要访问的FTP目录

[root@localhost ~]# useradd -d /var/ftproot-s /sbin/nologin vuser

[root@localhost ~]# chmod +rx /var/ftproot/

 

Centos7 还需要执行以下操作:

[root@localhost ~]# chmod –w  /var/ftproot

[root@localhost ~]# mkdir/var/ftproot/upload

[root@localhost ~]# setfacl  -m u:vuser:rwx  /var/ftproot/upload

 

3、创建pam配置文件

[root@localhost ~]# vim/etc/pam.d/vsftpd.db

auth required pam_userdb.sodb=/etc/vsftpd/vusers

    accountrequired pam_userdb.so db=/etc/vsftpd/vusers

    注意:这后面的文件是不带后缀的。

4、指定pam配置文件

     [root@localhost ~]# vim/etc/vsftpd/vsftpd.conf

    pam_service_name=vsftpd   #设置 PAM 外挂模块提供的认证服务所使用的配置文件名guest_enable=YES     #开启虚拟用户

guest_username=vuser   #指定虚拟用户映射的系统用户

pam_service_name=vsftpd.db  #指定虚拟用户帐号密码数据库文件

      virtual_use_local_privs=YES   #虚拟用户和本地用户有相同的权限;

 此时重启vsftpd 服务后,虚拟用户可正常登录。

注意:selinux   :可以禁用selinux 或者 执行setsebool –P ftpd_full_access 1

 

5、虚拟用户建立独立的配置文件

                   为满足各用户的不同需求可以对不同的虚拟用户创建独立的配置文件分别管理。

        a、为个别虚拟用户创建独立的配置文件

                   [root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

                   user_config_dir=/etc/vsftpd/vuser.d/  

         b、为个别虚拟用户配置相关参数

            [root@localhost vuser.d]# vim test2

            anon_upload_enable=YES   #允许上传 (允许虚拟用户test2上传文件)

                download_enable=NO   #禁止下载 (禁止虚拟用户test2 下载文件)

 

至此实现虚拟用户的正常使用。Test1具有与其主目录相等权限允许上传、下载、删除等权限,test2只可上传不可下载。