构建基于虚拟用户的vsftpd服务器且每个用户拥有独立的目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构建基于虚拟用户的vsftpd服务器且每个用户拥有独立的目录相关的知识,希望对你有一定的参考价值。

    第一步:安装需要的软件vsftp,db4-utils,ftp(用于测试)

                [[email protected] ~]#yum -y install vsftpd db4-utils ftp

    第二步:建立虚拟FTP用户的帐号数据库文件

                [[email protected] ~]#vi /etc/vsftpd/vusers_list

                 vuser_list文件内容如下:

                     tom (用户名)

                     123   (用户密码)

                     jerry  (用户名)  

                     456   (用户密码)

                    注意:不要有空行,一行帐号,一行密码

                [[email protected] ~]#cd /etc/vsftpd

                [[email protected] ~]#db_load -T -t hash -f vusers_list vusers_login.db

                [[email protected] ~]#chmod 600 /etc/vsftpd/vuser_login.db

     第三步:创建FTP根目录及虚拟用户映射的系统用户

                [[email protected] ~]#useradd -d /var/ftproot -s /sbin/nologin vuser

                [[email protected] ~]#chown vuser:vuser /var/ftproot

                [[email protected] ~]#chmod 755 /var/ftproot

     第四步:建立支持虚拟用户的PAM认证文件

                [[email protected] ~]#vi /etc/vsftpd/vsftpd.vu

                    vsftpd.vu文件添加如下二行内容

                        auth required pam_userdb.so db=/etc/vsftpd/vusers_login

                        account required pam_userdb.so db=/etc/vsftpd/vusers_login

     第五步:在vsftpd.conf文件中添加支持的配置

                 [[email protected] ~]#vi /etc/vsftpd/vsftpd.conf

                    anonymous_enable=NO                                       //默认为YES,请修改为NO

                    local_enable=YES                                                  //配置文件默认启用且为YES

                    write_enable=YES                                                //配置文件默认启用且为YES

                    anon_mkdir_write_enable=NO

                    anon_other_write_enable=NO

                    chroot_local_user=YES

                    guest_enable=YES                 

                    guest_username=vuser                                       

                    pam_service_name=vsftpd.vu

                    user_config_dir=/etc/vsftpd/vusers_home

                    注意:红色字体需另外添加

      第六步:为用户分别建立相对应的目录

                    [[email protected] ~]#mkdir /tmp/{tom,jerry}

      第七步:为用户建立独立的配置文件(权限控制文件名与用户名相同)

                    [[email protected] ~]#mkdir /etc/vsftpd/vusers_home

                    [[email protected] ~]#touch /etc/vsftpd/vusers_home/{tom,jerry}

      第八步:为用户单独分配不同的权限

                    [[email protected] ~]#vi /etc/vsftpd/vusers_home/tom

                      tom文件内容如下(tom用户拥有上传,下载,新建,删除权限)

                        anon_upload_enable=YES

                        anon_mkdir_write_enable=YES

                        anon_other_write_enable=YES

                    [[email protected] ~]#vi /etc/vsftpd/vusers_home/jerry

                        jerry文件内容如下(jerry用户只拥有上传,下载,新建权限,不允许删除操作)

                            anon_upload_enable=YES

                            anon_mkdir_write_enable=YES

                            anon_other_write_enable=NO

                    

以上是关于构建基于虚拟用户的vsftpd服务器且每个用户拥有独立的目录的主要内容,如果未能解决你的问题,请参考以下文章

搭建FTP服务器:Linux下vsftpd实现基于Berkeley DB文件存放虚拟用户的案例

FTP服务-实现vsftpd虚拟用户

vsftpd基于数据库文件实现虚拟用户管理站点目录

实现基于mysql验证的vsftpd虚拟用户

centos 7搭建基于虚拟用户的FTP服务

配置Vsftpd下的虚拟用户