基本作用:
       针对节点可以设置 相关读写等权限,目的为了保障数据安全性
       权限permissions可以制定不同的权限范围以及角色
一:ACL构成
        zk的acl通过[scheme:id:permissions]来构成权限列表
        scheme:代表采用的某种权限机制
        id:代表允许访问的用户
        permissions:权限组合字符串
     1、  scheme:
             word:word下只有一个id,既只有一个用户,也就是anyone。那么组合的写法就是word:anyone:[permissions]
             auth:代表认证登录,需要注册用户有权限就可以,形式为:auth:user:password:[permissions]
             digest:需要对密码加密才能访问,组合行成为: digest:username:BASE64(SHA1(password)):[permissions]
         
            简而言之,auth与digest的区别就是,一个明文,一个密文setAcl/path auth:lee:lee:cdrwa
                                                                            与                     setAcl/path digest:lee:BASE64(SHA1(password)):cdrwa
            等价的,再通过addauth digest lee:lee   后都能操作指定节点的权限
           
           ip:当设置为ip指定的ip地址,此时限制ip进行访问,比如:
           ip :192.168.1.1:[permissions]  
            
          super:比较特殊  代表超级管理员,拥有所有权限
 
    3、ACL构成三  --- permissions 
          权限字符串缩写:crdwa
          create:创建子节点
             read:获取节点/子节点
            write:设置节点数据
          delete:删除子节点
          admin:设置权限
二:ACL命令
       getAcl:获取某个节点的acl权限信息
       setAcl:设置某个节点的acl权限信息
       addauth:输入认证授权信息,注册时输入明文密码(登录),但是在zk的系统里,密码是加密的形式存在的。
 
 1、getAcl
        
 2、wolrd
            wolrd:anyoone:cdrwa
            默认在节点创建完是允许所有匿名用户对该节点进行操作的。
           
如上图所示,我们给/wq/abc 设置了crwa(即创建、读、写、管理操作)。
注:由于我们的/wq默认在创建的时候会拥有cdrwa权限,此时我们删除/wq/abc肯定是可以的。
 
设置acl权限和验证
那么怎样来验证我们刚设的crwa权限呢?这里我们需要在/wq/abc下再创建一个子节点即/wq/abc/xyz从而来验证上一步我们给/wq/abc设置不能删除节点的权限。例:
 
3、Auth
   第一步,先初始化一些节点,在根目录下新建节点/names,再在/names下新建节点hebe并查看其权限,如图示:
 
注:下面演示一下错误操作,直接给当前节点验证用户名hebe密码hebe,会出现如下错误信息:
这是由于我们的用户名密码并没有进行注册(即登录信息并未注册)。
那么就需要我们将该用户名/密码添加到库里,再登录并设置权限就行了,如下所示:
获取该节点Acl,并将我圈出部分即账户信息hebe:YDTbY1suR969/X/vk+9Fiwzfpd8=
拷贝(选中右键粘贴即可,不要ctrl+c,因为会退出)到本地记事本中,待会有用到。如图示:
 
后面添加的用户都会使用第一个用户的账号信息。
首先,为了演示,新加一个用户zyl:zyl,( zyl:AKsNqVOhO7ZXMtj51BNaV+Tv60A=)它的Acl信息如下:
 
即这里省略用户密码信息也是可以进入的。默认使用的是当前第一个的用户信息。

4、digest
    使用digest首先我们需要退出当前用户,即ctrl+c退出客户端。再./zkCli.sh运行客户端。接下来在/names节点下新建test节点,如图示0:
 
设置Acl,用户信息就是上面我们拷贝的wq的用户信息,如图示:
登录addauth digest wq:wq,注意登录我们也不可能让用户输入暗文登录,所以还是使用明文密码登录。如图示:
 
5、使用 ip
     Linux环境配置,配置Acl如图示:
6、使用 Super
    6.1、  修改zkServer.sh增加super 管理员
  首先需要vi zkServer.sh 利用/查询nohup,紧接着添加超级管理员配置信息
  vi /usr/local/zookeeper/bin/zkServer.sh  或vim /usr/local/zookeeper/bin/zkServer.sh   打开如图示:
 
-Dzookeeper.DigestAuthenticationProvider.superDigest=zyl:AKsNqVOhO7ZXMtj51BNaV+Tv60A=我们之前设过的zyl的用户密码。

增加后内容。

6.2、重启zkServer.sh,再重启客户端zkCli.sh,如下所示:
  
6.3、验证超级管理员权限
通过上图,我们可以发现,一开始我们是没登录超级管理员,所以查看ip节点是没有权限的(因为上一步我们给ip节点加了固定ip权限才能操作),所以在使用addauth digest wq:wq登录我们的超级管理员后,就可以任意妄为地操作我们的节点了。
三:ACL使用场景
     开发、测试环境分离,开发者无权操作测试库的节点,只能看;
  生产环境上控制指定ip的服务可以访问相关节点,防止混乱。

zookeeper ACL(access control lists)权限控制的更多相关文章

  1. Phalcon 訪问控制列表 ACL(Access Control Lists ACL)

    Phalcon在权限方面通过 Phalcon\Acl 提供了一个轻量级的 ACL(訪问控制列表). Access Control Lists (ACL) 同意系统对用户的訪问权限进行控制,比方同意訪问 ...

  2. [笔记] Access Control Lists (ACL) 学习笔记汇总

    一直不太明白Windows的ACL是怎么回事,还是静下心来看一手的MSDN吧. [翻译] Access Control Lists [翻译] How Access Check Works Modify ...

  3. Oracle ACL (Access Control List)详解

    在Oracle11g中,Oracle在安全方面有了很多的改进,而在网络权限控制方面,也有一个新的概念提出来,叫做ACL(Access Control List), 这是一种细粒度的权限控制.在ACL之 ...

  4. [转]CodeIgniter与Zend Acl结合实现轻量级权限控制

    Tag :CodeIgniter  Zend Acl 权限控制 1. Zend_Acl简介 Zend_Acl 为权限管理提供轻量并灵活的访问控制列表 (ACL,access control list) ...

  5. windows访问控制列表 --ACL(Access Control List)

    1.定义 ACL是一个windows中的表示用户(组)权限的列表. Access Control List(ACL) Access Control Entry(ACE) ... 2.分类 ACL分为两 ...

  6. CodeIgniter与Zend Acl结合实现轻量级权限控制

    CodeIgniter与Zend Acl结合实现轻量级权限控制 Tag :CodeIgniter Zend Acl 权限控制 1. Zend_Acl简介 Zend_Acl 为权限管理提供轻量并灵活的访 ...

  7. ACL(Access Control List)

    一.ACL的简介 ACL(Access Control List 访问控制列表)是路由器和交换机接口的指令列表,用来控制端口进出的数据包.ACL的定义也是基于每一种被动路由协议的,且适用于所有的被动路 ...

  8. ccna 闫辉单臂路由 和 acl access control list

    ccna 闫辉单臂路由 和  acl   access control list 一单臂路由     当前园区网设计很少用到       成本低  小型的.局域网可用         二ACL acc ...

  9. Gym100623A Access Control Lists

    Gym 100623A Access Control Lists 这个题很sb啊,就是去设置个交换机 我们可以给一个IP进行设置,也可以对一个网段就行设置,但是IP是优于网段的,比如样例的第一个 网段 ...

随机推荐

  1. PAT Advanced 1033 To Fill or Not to Fill (25) [贪⼼算法]

    题目 With highways available, driving a car from Hangzhou to any other city is easy. But since the tan ...

  2. Promoter complex|转录组水平RNA的复杂度|

    生命组学 Promoter complex Tata box识别位点 Enhancer加入之后增强转录 不确定性与确定性之间的关系,原因中存在这不确定性,但是结果表达又是确定的.因为promoter的 ...

  3. github新手使用教程

    1.首先打开https://github.com/官网 注册一个github账号 2.注册成功之后,登录账号,创建一个属于自己的库 3.创建完成之后,为了方便电脑上的代码上传到github 仓库上,要 ...

  4. python——print函数

    .print()函数概述 print() 方法用于打印输出,是python中最常见的一个函数. 该函数的语法如下: print(*objects, sep=' ', end='\n', file=sy ...

  5. PID<->Port[转]

    //Netstat -anb #include <Windows.h> #include "Psapi.h" #include <Iprtrmib.h> # ...

  6. rabbitmq参考文档

    英文文档:http://www.rabbitmq.com/getstarted.html 中文文档:http://rabbitmq.mr-ping.com/ rabbitmq重启,消费者恢复,解决消费 ...

  7. python的稀疏矩阵计算

    尽量避免稀疏矩阵, 加快计算. 比如计算稀疏矩阵S的F范数 a = norm(S, 'fro'), 方法1效率比方法2高很多. 方法 1 import numpy as np a = np.linal ...

  8. doc文件转txt

    doc文件转txt # -*- coding:utf-8 -*- # 安装pywin32包 http://sourceforge.net/projects/pywin32/files/pywin32/ ...

  9. Equal Cut

    Equal Cut 题目描述 Snuke has an integer sequence A of length N. He will make three cuts in A and divide ...

  10. linux4.11内核设备编译时出现的问题(参考博客并更改的)

    AllWinnerH3 linux4.11版本的bsp下载: https://pan.baidu.com/s/1mhU4a8K 密码: b375 H3-linux4.11_bsp目录就是所需的源码及编 ...