虚拟用户:

    所有虚拟用户都是系统用户的映射。

    0.创建系统用户:

        #useradd vusers -s /sbin/nologin -d /var/ftproot

        #password vusers


        #chown vusers:vusers /var/ftproot



    使用账号文件:

        1.创建虚拟用户名单:

            #vim /etc/vsftpd/vusers

                USERNAME

                PASSWORD


            #db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db 使用db_load命令转换为二进制文件,此命令由db4-utils包提供。


            #chmod 600 /etc/vsftpd/vusers.db 更改权限,保证安全。


        2.编辑pam配置文件:

            #vim /etc/pam.d/vsftpd.vusers

                auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers  

                account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers


        3.编辑配置文件:

            #vim /etc/vsftpd/vsftpd.conf

                anonymous_enable=YES

                local_enable=YES

                write_enable=YES

                anon_upload_enable=NO

                anon_mkdir_write_enable=NO

                chroot_local_user=YES


                guest_enable=YES 启用虚拟账户

                guest_username=vuser 虚拟账户对应的系统账户

                #virtual_user_local_privs=NO 虚拟账户权限是否和系统账户权限一致,YSE表示一致,NO表示和匿名账户权限一致。默认为NO。


                pam_service_name=vsftpd.vusers pam验证服务


                user_config_dir=/etc/vsftpd/vusers_dir 虚拟用户权限文件夹


        4.创建虚拟用户配置文件夹:

            #mkdir /etc/vsftpd/vsftpd_user_conf

            #cd /etc/vsftpd/vsftpd_user_conf

            #vim USERNAME1

                #write_enable=YES 用户是否有写权限。默认是YES

                anon_world_readable_only=YES 匿名用户是否可以下载,默认为YES。

                anon_upload_enable=YES

                anon_mkdir_write_enable=YES

                anon_other_write_enable=YES



    使用mysql:

        1.安装pam_mysql

            #tar xf pam_mysql-xxx.tar.gz

            #cd pam_mysql-xxx

            #./configure --with-mysql=/usr  -with-pam-mods-dir=/lib/security --with-openssl

            #make && make install


        2.编辑pam认证文件:

            #vim /etc/pam.d/vsftpd.mysql

                auth required /lib/security/pam_mysql.so user=vsftpd passwd=test host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

                account required /lib/security/pam_mysql.so user=vsftpd passwd=test host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2


                crypt=NUM

                0 明文

                1 使用加密功能

                2 使用mysql,但是mysql的password()和pam的password()功能不同。使用mysql加密的字符串pam解密时可能失败。如果失败则使用明文crypt=0。

                3 使用md5

                4 sha1


        3.编译mysql,添加数据库:

            #mysql -uroot -p

                mysql> create database vsftpd;


                mysql> grant select on vsftpd.* to vsftpd@localhost identified by 'test';

                mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by 'test';

                mysql> flush privileges;


                mysql> use vsftpd;

                mysql> create table users (

                    -> id int AUTO_INCREMENT NOT NULL,

                    -> name char(20) binary NOT NULL,

                    -> password char(48) binary NOT NULL,

                    -> primary key(id)

                    -> );


                mysql> insert into users(name,password) values('USERNAME1',password('PASSWORD'));

                mysql> insert into users(name,password) values('USERNAME2',password('PASSWORD'));


        4.编辑配置文件:

            #vim /etc/vsftpd/vsftpd.conf

                anonymous_enable=YES

                local_enable=YES

                write_enable=YES

                anon_upload_enable=NO

                anon_mkdir_write_enable=NO

                chroot_local_user=YES


                guest_enable=YES 启用虚拟账户

                guest_username=vuser 虚拟账户对应的系统账户

                #virtual_user_local_privs=NO 虚拟账户权限是否和系统账户权限一致,YSE表示一致,NO表示和匿名账户权限一致。默认为NO。


                pam_service_name=vsftpd.mysql pam验证服务


                user_config_dir=/etc/vsftpd/vusers_dir 虚拟用户权限文件夹


        5.创建虚拟用户配置文件夹:

            #mkdir /etc/vsftpd/vsftpd_user_conf

            #cd /etc/vsftpd/vsftpd_user_conf

            #vim USERNAME2

                #write_enable=YES 用户是否有写权限。默认是YES

                anon_world_readable_only=YES 匿名用户是否可以下载,默认为YES。

                anon_upload_enable=YES

                anon_mkdir_write_enable=YES

                anon_other_write_enable=YES