一.概述
zookeeper类似文件系统,client可以创建节点、更新节点、删除节点。而节点的权限控制是access control list(访问控制列表)。
二.acl权限控制的内容
1.权限模式(scheme)
采用授权的策略。
2.授权对象(id)
授权的对象。
3.权限(permission)
授予的权限。
三.zookeeper权限控制特性
1.zookeeper的权限控制是基于每个znode节点的,需要对每个节点设置权限。
2.每个znode节点支持设置多种权限控制方案和多个权限
3.子节点不会继承父节点的权限,客户端无权访问某节点,但可能可以访问它的子节点。
四.授权的指令
1.语法
# 设置权限
setAcl 节点路径 scheme:id:permission
# 获取权限
getAcl 节点路径 scheme:id:permission
# 添加认证用户[切换用户]
addauth 节点路径 scheme:id:permission
# scheme、id、permission请看acl权限控制的内容
2.范例
五.world授权模式
1.指令
setAcl节点路径world:anyone:权限
2.范例
六.IP授权模式
1.语法
setAcl 节点路径 ip:ip地址:权限
2.范例
3.客户端访问服务器
./zkCli.sh -server 服务器ip地址
七.auth授权模式
1.添加认证用户【切换】
(1)代码块
addauth digest 用户名:密码
(2)范例
2.授权认证用户
(1)代码块
setAcl 节点路径 auth:认证用户名:授权模式
(2)范例
3.Digest授权模式【密文加权限】
(1)设置密文加密的权限
(1-1)语法
setAcl 节点路径 digest:认证用户名:加密后的密码:权限
(1-2)范例
(2)获取加密的密码
(2-1)语法
echo -n 用户名:密码 | openssl dgst -binary -sha1 | openssl base64
(2-2)范例
八.多模式授权
1.语法
setAcl 节点路径 授权模式【多种授权用逗号分隔】