rmr zknode与ACL

时间:2017-01-19 01:40:47

标签: apache-zookeeper

我用acl创建了一个新的zknode,如下所示。

[0]addauth digest username:password
[1]create /testnode mydata auth:username:password:crdwa,world:anyone:r

这成功创建了zknode,然后我退出了zkCli会话。

现在,当我再次登录zkCli会话时。如果我不做" addauth摘要用户名:密码"作为我的第一个命令,然后我无法读取和写入/ testnode,这是预期的。但我可以运行 rmr 删除命令

[0]rmr /testnode -> this command deletes the zknode, which I do not want.

1 个答案:

答案 0 :(得分:0)

您在/ testnode上定义的ACL限制访问权限,以便任何人都可以读取znode中的数据,但只有经过身份验证的用户可以在/ testnode下创建子项,删除/ testnode下的子项,将数据写入znode或管理znode权限。此ACL不对删除/ testnode施加任何限制,因为这实际上是对父目录的操作:删除/.//的子项

ZooKeeper access control using ACLs上的Apache文档更详细地介绍了权限设置:

  

ZooKeeper支持以下权限:

     
      
  • 创建:您可以创建子节点
  •   
  • 阅读:您可以从节点获取数据并列出其子项。
  •   
  • WRITE :您可以为节点设置数据
  •   
  • 删除:您可以删除子节点
  •   
  • ADMIN :您可以设置权限
  •   

要限制删除子znode,您需要在其父级上应用ACL,并且该ACL必须限制DELETE访问。