zookeeper删除节点的权限_zookeeper权限管理

本文详细介绍了Zookeeper的Access Control List (ACL) 特性,包括其特点、相关命令、权限类型以及各种鉴权方案。内容涵盖如何设置和管理节点的权限,如world、ip、auth和digest方案,并提供了实例说明。
摘要由CSDN通过智能技术生成

一个zookeeper节点中不仅包含了存储的数据,还有 ACL(Access Control List)。节点创建时,可以给它设置一个ACL,来决定谁可以对节点做哪些操作。

ACL 具有以下特点:

1. ZooKeeper的权限控制是基于每个znode节点的,需要对每个节点设置权限

2. 每个znode支持设置多种权限控制方案和多个权限

3. 子节点不会继承父节点的权限,客户端无权访问某节点,但可能可以访问它的子节点

4. 所以任何一个客户端都可以通过exists 操作来获得任何znode的状态,从而得知znode是否真的存在。

ACL 相关命令

命令

语法

描述

getAcl

getAcl path

读取某个节点ACL权限

setAcl

setAcl path acllist

设置某个节点ACL权限

addauth

addauth scheme authinfo

添加认证用户

create

create [-s] [-e] path data acllist

创建节点时指明 ACL 权限

ACL Permissions

ACL 权限

ACL 简写

允许的操作

CREATE

c

创建子节点

DELETE

d

删除子节点 (仅下一级节点)

READ

r

获取节点的数据和它的子节点

WRITE

w

设置节点的数据

ADMIN

a

设置 ACL 权限

ACL Schemes

ZooKeeper内置了一些权限控制方案,可以用以下方案为每个节点设置权限:

方案

描述

world

只有一个用户:anyone,代表所有人(默认)

ip

使用IP地址认证

auth

使用已添加认证的用户认证

digest

使用“用户名:密码”方式认证

ACL是由鉴权方式(scheme)、该鉴权方式的ID(用户或ip地址)和一个权限(permession)的集合组成。例如,我们想通过一个ip地址为10.0.0.1的客户端访问一个节点。那么,我们需要为节点设置一个ACL,鉴权方式使用IP鉴权方式,鉴权方式的ID为10.0.0.1,只允许读权限。那么 ACL 的格式就是:ip:10.0.0.1:w

world 方案

默认情况下使用 world 方法,任何人有所有权限:

创建节点/abc,赋值20190825,默认具有world全部权限

e56be1f4773485043936f32dea5f92c0.png

修改(设置)权限:setAcl world:anyone:

修改节点/abc权限,从cdrwa改为drwa,创建子节点失败(正常创建节点时会打印Created,如上图)

64e345d03d4c03da150bf9afb66f9802.png

IP 方案

:可以是具体IP也可以是IP/bit格式,即IP转换为二进制,匹配前bit位,如192.168.0.0/16匹配192.168.*.*

设置方式:setAcl ip::

738947a6115f71f30ec506826390a8b6.png

每种权限模式也支持在节点创建时直接指定,这样就不是默认的world模式。

初始化设置方式:create node data ip::

de719071538880cb9ab82cd46988ade1.png

auth 方案

设置方式

addauth digest :#添加认证用户,可以是新用户或老用户,老用户密码表示鉴权,新用户密码组合表示添加及鉴权,一个用户名支持匹配多个密码,一个用户加一个密码组成一对认证信息

setAcl auth::

最后getAcl查询到的密码为SHA62加密过的密码

9ea4f1884cc3cfe724f6019f9c6428d6.png

一个用户支持多个密码

ed9392678ffca5395abcc3af5fb3b662.png

digest 方案

设置方式

setAcl digest:::这里的密码是经过SHA1及BASE64处理的密文,这也是digest和auth两种权限模式的区别,auth为传入明文自动生成秘文,无需用户自己生成,直接设置即可。

在SHELL中可以通过以下命令计算:

echo -n :| openssl dgst -binary -sha1 | openssl base64

先来算一个密文密码:

echo -n admin:admin | openssl dgst -binary -sha1 | openssl base64

x1nq8J5GOJVPY6zgzhtTtA9izLc=

de40d399ef05d142924fea3eb338ce0a.png

注意了!使用 rmr 删除节点没有权限时,竟然可以使用 delete

待补充:删除目录,删除节点,创建不含value的节点,同一个节点既是目录又有数据,无法创建节点,无报错

d50df33cfc3803b9118059bef76b0569.png

原文链接:https://blog.csdn.net/feixiang2039/article/details/79810102

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值