作用
- 针对节点设置相应读写等权限,目的是为了保障数据安全性
- 权限permissions可以指定不同的权限范围以及角色
ACL命令行
getAcl:获取某个节点的acl权限信息
setAcl:设置某个节点的acl权限信息
addauth:输入认证授权信息,注册时输入明文密码,但在zk里密码是以加密的形式存在
ACL的构成
acl通过scheme : id : permissions来构成权限列表
其中scheme代表采用某种权限机制,id代表允许访问的用户,permissions代表权限组合字符串
scheme有以下几种类型:
world:world下只有一个id,即只有一个anyone用户,形式为world:anyone:[permissions]
auth:代表认证登录,需要注册用户有权限,形式为auth:[username]:[password]:[permissions]
digest:需要对密码加密才能访问,组合形式为digest:[username]:[base64(sha1(password))]:[permissions]
ip:当设置为ip指定的ip地址时,此时限制ip访问,形式为ip:192.168.1.1:[permissions]
super:代表超级管理员,拥有所有权限
简而言之,auth与digest的区别是,前者明文,后者密文
setAcl /path auth:un:pwd:cdrwa等价于setAcl /path digest:un:base64(sha1(pwd)):cdrwa
再通过addauth digest un:pwd命令后都能操作指定的节点
对于super的设置步骤:
1.修改zkServer.sh增加超级管理员
2.重启zkServer.sh