vsftpd

vsftpd:

    程序环境:

        配置文件:/etc/vsftpd/vsftpd.conf

        主程序:/usr/sbin/vsftpd

        Unit File:/usr/lib/systemd/system/vsftpd.service

        文件路径映射:/var/ftp 

            ftp://ftp.magedu.com/pub/a.txt  –> /var/ftp/pub/a.txt

            用户的家目录的映射:访问ftp必须以某个系统用户的身份,此用户的家目录即文档目录;

            匿名用户:anonymous,要映射为一个系统用户,默认ftp;

        

    用户种类:

        匿名用户、系统用户、虚拟用户

    配置vsftpd:

        配置文件:vsftpd.conf

            directive value

            注意:directive之前不能有任何字符;

        匿名用户:

        anonymous_enable=YES

        anon_upload_enable=YES

        anon_mkdir_write_enable=YES

        anon_other_write_enable=YES

        系统用户:

            local_enable=YES

            write_enable=YES

            辅助认证配置文件/etc/vsftpd/ftpusers:

                pam认证的配置文件:/etc/pam.d/vsftpd

                chroot_local_users=YES

    禁锢所有的本地用户于自己的家目录中;但需要事先移除用户对家目录的写权限;

                chroot_list_enable=YES

                chroot_list_file=/etc/vsftpd/chroot_list 

    禁锢指定的文件中的用户于自己的家目录中;但需要事先移除用户对家目录的写权限;

        数据传输日志:

            xferlog_std_format=YES

            xferlog_enable=YES

            xferlog_file=/var/log/xferlog

        控制可登录vsftpd服务的用户列表:

            userlist_enable=YES

                是否启用/etc/vsftpd/user_list文件来可登录的用户;

            userlist_deny={YES|NO}

                YES:黑名单

                NO:白名单

    虚拟用户:

        用户账号存储于何处?

            文件,MySQL,Redis, …

        vsftpd的认证功能托管给pam:

            Pluggable Authencate Module,认证框架,认证库;

            通过模块完成认证功能:/usr/lib64/security/

            pam_mysql模块:

# ./configure –with-pam=/usr –with-mysql=/usr –with-pam-mods-dir=/usr/lib64/security

            # make

            # make install 

            准备数据库:

            mysql> CREATE DATABASE vsftpd;

            mysql> CREATE TABLE vsftpd.users (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name CHAR(30) NOT NULL UNIQUE KEY,password CHAR(48));

            mysql> INSERT INTO vsftpd.users (name,password) VALUES ('tom',PASSWORD('mageedu')),('jerry',PASSWORD('mageedu'));

            mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'mageedu';

            mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'127.0.0.1' IDENTIFIED BY 'mageedu';

            mysql> FLUSH PRIVILEGES;

            vsftpd通过pam_mysql进行认证的配置文件:/etc/pam.d/vsftpd.mysql

            auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

            account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

            user:连接mysql服务器的用户名,此用户要有权限访问认证vsftpd服务的数据库;

                passwd:上面的用户的密码; 

                host:mysql服务器主机地址;

                db:认证vsftpd服务的数据库名称;

                table:存放了用户和密码的表;

                usercolumn:用户名对应的字段;

                passwdcolumn:密码对应的字段;

                crypt:密码加密方法;

            准备匿名用户映射的系统用户账号:

                # mkdir /ftproot 

                # useradd  -d /ftproot  vuser

                # mkdir /ftproot/{pub,upload}

                # setfacl -m u:vuser:rwx  /ftproot/upload

            配置vsftpd:vsftpd.conf

                pam_service_name=vsftpd.mysql

                guest_enable=YES

                guest_username=vuser

            配置每匿名用户有单独的权限设定

                vsftpd.conf,添加:

                    user_config_dir=/etc/vsftpd/users_conf

                创建目录:

                    # mkdir /etc/vsftpd/vusers_conf

                为每用户提供配置文件:

                    /etc/vsftpd/vusers_conf/{tom,jerry}

                配置权限的指令:

                    anon_upload_enable

                    anon_mkdir_write_enable

                    anon_other_write_enable

原创文章,作者:songzizhe,如若转载,请注明出处:http://www.178linux.com/55874

赞 (0)
songzizhesongzizhe
上一篇 2016-12-05 17:03
下一篇 2016-12-05 17:03

相关推荐

  • 文本处理工具(练习+作业)

    文本处理工具(cut,sort,uniq)练习 1、找出ifconfig命令结果中本机的所有IPv4地址 [root@localhost ~]# ifconfig | tr -cs '[:digit:].' '\n'| sort -t. -k3 |tail -5 2、查出分区空间使用率的最大百分比值 [root@loc…

    Linux干货 2016-08-07
  • 第七周 N21 总有刁民想害朕

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;        mke2fs -t ext4 /dev/sdb5 -b 2048 -m 2 -L "MYDATA&quot…

    Linux干货 2016-08-08
  • Redis集群明细文档

    Redis目前版本是没有提供集群功能的,如果要实现多台Redis同时提供服务只能通过客户端自身去实现(Memchached也是客户端实现分布式)。目前根据文档已经看到Redis正在开发集群功能,其中一部分已经开发完成,但是具体什么时候可以用上,还不得而知。文档来源:http://redis.io/topics/cluster-spec 一、介绍   该文档是…

    Linux干货 2015-04-04
  • Linux的初步认识

         Linux的哲学思想 (1)一切都是一个文件(包括硬件) (2)小型,单一用途的程序 (3)链接程序,共同完成复杂的任务 (4)避免令人困惑的用户界面 (5)配置数据储存在文本中 1.Linux分为普通用户和root用户 普通用户:权利非常有限对系统的损害比较小 root用户:被称作为超级用户,对系统接近完整的控制,对…

    2017-05-20
  • Mariadb的主从复制实验和半同步的实现

    1,主服务器需要开启二进制日志记录,并且授权一个用户给从节点。 主服务器的主配置文件[mysqld]内容如下。 [mysqld] port= 3306 socket= /tmp/mysql.sock skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_…

    2017-09-18
  • 马哥教育21期网络班—第一周课程+练习

    计算机的组成及功能 根据冯·诺依曼原理 现在计算机有五部分组成 分别是:运算器、控制器、存储器、输入设备和输出设备 现在把运算器和控制器做到一块就是所谓的CPU CPU = 运算器+控制器 存储器:memory 用于存储信息的记忆设备,存储器分为ROM和RAM 编址存储设备 ROM:只读存储器,寻址地址空间的组成部分 RAM:随机存储器 输入和输出设备: 输…

    Linux干货 2016-06-26