Zookeeper ACL

命令名词解释

  • acl
    Access Control List 访问控制列表
  • auth
    Authentication 身份认证,在这里就解释为身份认证比较合理
    并不是Authorization(授权),至于为什么下面会说。
  • digst
    Digest 摘要认证

创建节点

  • 创建一个普通节点,节点名为nodeName
create /nodeName '我是内容'
  • 获取节点ACL
getAcl /nodeName

/*
返回内容:(表明无访问权限限制,任何人都有cdrwa权限)
'world,'anyone
: cdrwa
很好理解,全世界的任何人,都有cdrwa权限,因为我们并没有针对这个节点设置ACL
create
delete
retrieve/read
write
admin
*/

设置ACL

创建Digest

addauth digest <user>:<password>
例子:
addauth digest test:test123

设置ACL策略

  • 设置节点ACL:
    这里有2种方式:
  1. setAcl <path> auth:<user>:<acl>
  2. setAcl <path> digst:<user>:<密文password>:<acl>
    密文password是由 <user>:<password> 字符串的二进制数据进行sha1加密,然后转为base64编码。

setAcl auth 例子

setAcl /nodeName auth:test:crdwa

setAcl digst 例子

setAcl /nodeName digst:test:4kLbCbLRytYsfNQkaDbMuExRDDs=:cdrwa

两者区别在于:

  • auth:只是验证你是否有添加过的用户,它会将此节点设置为你之前添加过的所有用户都具有<acl>权限
    这个auth你可以理解为,我要设置acl访问策略为auth,但是我需要输入账号让Zookeeper知道,你可以理解为账号用来登录,并不是将访问权限设置成一个指定的用户。设置为auth策略后,所有存在的用户都对这个节点有<acl>权限。
  • digst:设置指定的一个摘要,比如上面的
    setAcl /nodeName digst:test:4kLbCbLRytYsfNQkaDbMuExRDDs=:cdrwa
    就是设置这个节点只能test用户访问

密文生成

echo -n <user>:<password>| openssl dgst -binary -sha1| openssl base64

例子:
echo -n test:test123| openssl dgst -binary -sha1| openssl base64

返回信息:4kLbCbLRytYsfNQkaDbMuExRDDs=

除了使用openssl生成,在addauth digest <user>:<password>执行后,也会告诉你密文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没事干写博客玩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值