基本作用:
       针对节点可以设置 相关读写等权限,目的为了保障数据安全性
       权限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. python编程:从入门到实践----第五章>if 语句

    一.一个简单示例 假设有一个汽车列表,并想将其每辆汽车的名称打印出来.遇到汽车名‘bmw’,以全大写打印:其他汽车名,首字母大写 cars=['audi','bmw','subaru','toyota ...

  2. 关于live2D的使用

    <script src="https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d-pony/live2dw/lib/L2Dwidge ...

  3. 利用GetCharWidth32获取字符串宽度

    /////////////////////////////////////////////////////////////// // 04FirstWindow.cpp文件 #include < ...

  4. [前端] VUE基础 (5) (过滤器、生命周期、钩子函数)

    一.过滤器 过滤器分为局部过滤器和全局过滤器. 1.局部过滤器 <body> <div id="app"> </div> <script ...

  5. ERP上线通用模板

    一.引言    随着现代信息技术的发展与广泛应用,现代社会的快速发展和越来越追求效率的现状,对各行各业的管理的水平有了进一步的提高.XX企业作为我国的国民经济发展的基础产业,其信息化建设的水平直接关系 ...

  6. 联想的amd电脑,Debian8.8开机后亮度值始终最大,尝试过各种方法,始终无法解决,最后debian8.8在安装开源驱动后,成功调节

    安装ATI显卡驱动(开源)(方法步骤来自Debian WiKi) A.先升级可用的包 # aptitude upgrade B.安装下面3个包 # apt-get install firmware-l ...

  7. ansible-playbook编写服务器初始化脚本

    1.原理:通过limit的参数,限制新定义的服务器.即可给新买的服务器初始化优化.(如下图所示) 首先我们编写一个总入口的palybook脚本: init.yml --- - hosts: all u ...

  8. Opencv笔记(十六)——认识轮廓

    什么是轮廓? 轮廓可以简单认为成连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度.轮廓在形状分析和物体的检测和识别中很有用.谈起轮廓不免想到边缘,它们确实很像.简单的说,轮廓是连续的,边缘并 ...

  9. crontab不执行service命令

    我这里的需求是每30分钟重启一次 写成下面的格式就可以正确执行了,后面执行的命令写绝对路径 */30 * * * * /usr/bin/supervisorctl restart all

  10. 量化投资_TB交易开拓者A函数和Q函数常见组合应用

    1 在交易开拓者当中,关于交易的做单方式一般分为:图表函数和A函数两类. 两类的主要区别为:如果采用图表函数的话,所有的交易内容都是以图表上面的信号为准,当前仓位运行的实际状态是没有的,但是可以显示交 ...