配置ZooKeeper ZNode ACL
更新时间 2026-10-12 11:41:21
最近更新时间: 2026-10-12 11:41:21
本章节介绍如何配置ZooKeeper ZNode ACL。
ZooKeeper中的ACL(Access Control List,访问控制列表)是一种用于控制资源访问权限的机制。ZooKeeper对权限的控制是ZNode级别的,且权限不继承,即对父ZNode设置权限后,其子ZNode不会继承父ZNode的权限。ZNode的默认权限为world:anyone:cdrwa,即任何用户都有所有权限。
ZooKeeper支持以下五种权限:
| 权限简称 | 权限详情 |
|---|---|
| 创建权限 create(c) | 创建子节点的权限。 |
| 删除权限 delete(d) | 删除节点的权限。 |
| 读权限 read(r) | 读取节点数据和子节点列表的权限。 |
| 写权限 write(w) | 向节点写数据的权限。 |
| 管理权限 admin(a) | 设置节点ACL的权限。 |
设置ACL
1、获取账号的编码密码
java -cp "/usr/local/zookeeper/lib/zookeeper-3.7.1.jar:/usr/local/zookeeper/lib/slf4j-api-1.7.35.jar" org.apache.zookeeper.server.auth.DigestAuthenticationProvider user:passwd按需替换user和passwd。
2、设置节点ACL
setAcl <path>digest:user:encodepasswd:cdrwa设置指定用户对节点的ACL权限,其中encodepasswd为通过DigestAuthenticationProvider生成的编码密码。cdrwa为设置的ACL权限,可按需调整。