zookeeper权限控制详解

本文详细介绍了ZooKeeper的权限控制,包括权限列表、ACL权限特点、相关命令及四种授权策略:world、ip、auth和digest。重点讨论了digest授权策略的使用和与auth策略的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


本文为 zookeeper客户端shell命令详解中的一部分,由于内容较多,网上一些文章对该部分讨论讲解比较模糊,尤其是auth与digest两种授权模式的介绍部分,所以在此处独立出来讲解。

1、预备知识

zookeeper通过ACL权限控制列表来控制其对znode节点的访问权限。ACL权限与Unix文件系统中的权限控制类似,使用权限位限制指定角色对znode节点的各种操作,本节来详细介绍zookeeper中ACL权限控制。

1.1 权限列表

zookeeper中对znode节点的操作权限主要有以下五种,我们可以通过其简写的任意组合来实现对znode节点的不同权限控制。

名称 简写 权限说明
CREATE c 允许创建当前节点下的字节点
DELETE d 允许删除当前节点下的子节点,仅限下一级
READ r 允许读取节点数据以及显示子节点的列表
WRITE w 允许设置当前节点的数据
ADMIN a 管理员权限,允许设置或读取当前节点的权限列表
1.2 ACL权限特点

Zookeeper权限控制有以下几个特点:

  • 1、zookeeper的权限是基于znode节点的,需要对每个节点设置权限。
  • 2、znode节点支持同时设置多种权限方案和多个权限。当znode有多种权限的时候,只要有一个权限允许当前操作,即可执行当前操作,即多个权限之间为或的关系
  • 3、子节点不会继承父节点的权限,客户端没有权限访问当前节点,但是可以访问当前节点的子节点。
  • 4、使用setAcl命令对节点进行权限设置会覆盖掉原来的权限。
1.3 权限相关命令

zookeeper中权限控制包括以下三个命令。下面我们详细对ACL进行操作的控制进行讲解。

addauth scheme auth 	// 添加认证用户
getAcl [-s] path			// 获取指定节点的权限列表
setAcl [-s] [-v version] [-R] path acl	// 对指定节点设置权限。

2、添加认证用户:addauth

添加认证用户命令

# 通常情况下,schame固定为digest,auth为user:passwd。(目前只接触这种用法)
addauth scheme auth

添加认证用户实例

# 添加第一个认证用户
addauth digest abc:123456
# 添加第二个认证用户,注意:第一个添加的认证用户依然有效。
addauth digest ab:123
# 添加第三个认证用户,注意,单个用户可以有不同的密码,此时三个认证的用户全部同时有效
addauth digest abc:abcdefg

注意问题:

  • 1、认证用户添加完之后,认证将对该会话中添加认证之后的所有操作都有效,一旦会话结束,认证失效。
  • 2、添加认证时不同认证用户可以有不同的密码,多个user:passwd都有效。

待确认问题:addauth处理schame为digest外,可以有其他模式吗?

3、 设置znode节点操作权限命令:SetAcl

设置znode节点操作权限命令:

setAcl [-v version] [-R] path acl	// 对指定节点设置权限。 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值