1.背景
Zookeeper管理员会因为某些客户端对某些节点设置了权限,而导致在紧急的情况下无法修改这些节点感到困扰。在这种情况下,管理员可以通过Zookeeper超级用户模式访问这些节点,一旦设置了超级权限访问节点,后续的操作就不需要check ACL了。
使用超级用户模式,可以通过Zookeeper的zookeeper.DigestAuthenticationProvider.superDigest参数开启。
2.对超级用户的密码加密
使用org.apache.zookeeper.server.auth.DigestAuthenticationProvider生成superDigest:
public void generate() { try { System.out.println(DigestAuthenticationProvider.generateDigest("super:superpw")); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
输出super:superpw对应的加密参数为:
super:g9oN2HttPfn8MMWJZ2r45Np/LIA=
3.超级用户加入到服务端启动参数
在zookeeper服务端的zkEnv.sh环境变量中加入以下参数,开启超级用户,重启zookeeper服务端:
SERVER_JVMFLAGS="-Dzookeeper.DigestAuthenticationProvider.superDigest=super:g9oN2HttPfn8MMWJZ2r45Np/LIA= $SERVER_JVMFLAGS"
4.在客户端使用超级用户登陆
使用客户端登陆到zookeeper服务端:
zkCli.sh -server zdh-9:12181
然后执行命令切换到超级用户:
addauth digest super:superpw
这样就可以删除带有权限控制的节点了:
deleteall /storm
可以看到/storm节点stormkrb使用sasl创建的
[zk: zdh-9:12181(CONNECTED) 7] getAcl /storm'sasl,'stormkrb : cdrwa'world,'anyone : cr
作者:木木与呆呆
链接:https://www.jianshu.com/p/373d52375a65
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦