Zookeeper管理员会因为某些客户端对某些节点设置了权限,而导致在紧急的情况下无法修改这些节点感到困扰。在这种情况下,管理员可以通过Zookeeper超级用户模式访问这些节点,一旦设置了超级权限访问节点,后续的操作就不需要check ACL了。

使用超级用户模式,可以通过Zookeeper的zookeeper.DigestAuthenticationProvider.superDigest参数开启。

使用org.apache.zookeeper.server.auth.DigestAuthenticationProvider生成superDigest:

 @Testpublic void generate() {try {System.out.println(DigestAuthenticationProvider.generateDigest("super:superpw"));} catch (NoSuchAlgorithmException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

输出

super:g9oN2HttPfn8MMWJZ2r45Np/LIA=

在${ZOOKEEPER_HOME}/bin/zkServer.sh配置启动参数:

我使用的是zookeeper-3.4.6,修改zkServer.sh文件的第109行:

nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" "-Dzookeeper.DigestAuthenticationProvider.superDigest=super:g9oN2HttPfn8MMWJZ2r45Np/LIA=" \

超级权限是通过DigestAuthenticationProvider实现的,示例:

 @Testpublic void testSuperServer() {List<ACL> acls = new ArrayList<ACL>(2);try {Id id1 = new Id("digest", DigestAuthenticationProvider.generateDigest("fish:fishpw"));ACL acl1 = new ACL(ZooDefs.Perms.WRITE, id1);Id id2 = new Id("digest", DigestAuthenticationProvider.generateDigest("qsd:qsdpw"));ACL acl2 = new ACL(ZooDefs.Perms.READ, id2);acls.add(acl1);acls.add(acl2);} catch (NoSuchAlgorithmException e1) {e1.printStackTrace();}ZooKeeper zk = null;try {zk = new ZooKeeper("10.0.1.75:2181,10.0.1.76:2181,10.0.1.77:2181", 300000, new Watcher() {// 监控所有被触发的事件public void process(WatchedEvent event) {System.out.println("已经触发了" + event.getType() + "事件!");}});if (zk.exists("/test", true) == null) {System.out.println(zk.create("/test", "ACL测试".getBytes(), acls, CreateMode.PERSISTENT));}} catch (IOException e) {e.printStackTrace();} catch (KeeperException e1) {e1.printStackTrace();} catch (InterruptedException e1) {e1.printStackTrace();}}@Testpublic void testSuperClient() {try {ZooKeeper zk = new ZooKeeper("10.0.1.75:2181,10.0.1.76:2181,10.0.1.77:2181", 300000, new Watcher() {// 监控所有被触发的事件public void process(WatchedEvent event) {System.out.println("已经触发了" + event.getType() + "事件!");}});zk.addAuthInfo("digest", "super:superpw".getBytes());System.out.println(new String(zk.getData("/test", null, null)));zk.setData("/test", "I change!".getBytes(), -1);} catch (KeeperException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}

示例先使用digest对Znode /test 设置读写权限,然后通过super:superpw的超级用户去访问。

Zookeeper超级用户相关推荐

  1. zookeeper删除节点的权限_Zookeeper使用超级用户删除带权限的节点

    1.背景 Zookeeper管理员会因为某些客户端对某些节点设置了权限,而导致在紧急的情况下无法修改这些节点感到困扰.在这种情况下,管理员可以通过Zookeeper超级用户模式访问这些节点,一旦设置了 ...

  2. Zookeeper使用超级用户删除带权限的节点

    1.背景 Zookeeper管理员会因为某些客户端对某些节点设置了权限,而导致在紧急的情况下无法修改这些节点感到困扰.在这种情况下,管理员可以通过Zookeeper超级用户模式访问这些节点,一旦设置了 ...

  3. 福利 | 学习超级用户运营,都来U-Time六城巡回沙龙”!

    岁末年初,总是充满挑战.各种总结规划,都让互联网er们不得不陷入一个思考当中,你准备好迎接新的挑战了吗?友盟+提供了完美的逆袭方案,给你一个自我提升的机会.希望你更好地同过去的一年告别,并做好准备迎接 ...

  4. linux推出超级用户_Linux 系统的进入与退出

    1 . 1 超级用户登录 超级用户的用户名为 root ,密码在安装系统时已设定.系统启动成功后,屏幕显示下面的提示: localhost login: 这时输入超级用户名 "root&qu ...

  5. 在 Linux 中使用超级用户权限

    在你想要使用超级权限临时运行一条命令时,sudo 命令非常方便,但是当它不能如你期望的工作时,你也会遇到一些麻烦.比如说你想在某些日志文件结尾添加一些重要的信息,你可能会尝试这样做: $ echo & ...

  6. 系统中多种隐藏超级用户添加方法第1/2页

    我们可以从防范的角度出发,如果查找隐藏用户 一.如何在图形界面建立隐藏的超级用户 图形界面下适用本地或开3389终端服务的肉鸡上.上面我提到的那位作者说的方法很好,但是较为复杂,还要用到psu.exe ...

  7. centos下新建超级用户及sudoers权限问题

    1.新建用户:    #useradd hdfs 2.修改密码:    #passwd hdfs 3.设置超级用户权限    可先sudo chmod 777 /etc/sudoers 读写权限   ...

  8. 硅谷增长的新指标——超级用户微笑曲线

    所有成功的公司都有自己的超级用户--那些热爱他们的产品.粘性高.并对整个用户社群贡献了很多价值的人.在电商平台,超级用户就是卖家:在共享出行平台,超级用户就是司机:在社交网络,超级用户就是KOL. 所 ...

  9. PostgreSQL下如何修改用户权限的介绍以及hook机制对超级用户的权限修改

    2019独角兽企业重金招聘Python工程师标准>>> 要想修改PG的用户权限,那么首先要对PG权限控制做一下了解: PG的权限控制是针对到各个对象的.大家可以看一下,所有系统表(p ...

最新文章

  1. [转]SQL truncate 、delete与drop区别
  2. 数据可视化应用案例:麦当劳和肯德基全国门店分布,谁才是分布最广的炸鸡店?
  3. c语言 数组指针,C语言数组名及指向数组指针的小结
  4. BizTalk Orchestration Publish Host In-Process Wcf Service without IIS 多种供客户端调用方式
  5. java replaceall 大小写_Java replaceAll不区分大小写
  6. MySQL5安装配置笔记【超详细】
  7. 一周工作60个小时并不值得骄傲,这是个问题!
  8. java线程卡住排查_基于 Java 线程栈 排查问题
  9. 美联储降息首日:资本市场反向操作 道指狂泻800点
  10. 换手机的再等等!iPhone SE2还有戏:苹果官网悄然更新AppleCare+服务计划
  11. sql 分组求和_《从零学会SQL-第七关高级功能》课后练习
  12. linux实现内存共享,Linux共享内存实现
  13. Linux学习总结(65)——Linux 服务器安全强化的七个步骤
  14. 北大核心期刊目录2020_2020年RCCSE权威、核心期刊目录总览
  15. 【论文】动态贝叶斯网络用于时序建模及动作分类
  16. 对于代理服务器的理解
  17. java docx4j 目录,docx4j项目(包括jar包、javadoc文档、源码及示例)
  18. 制作网页所需的一些简单ps技巧
  19. YOLO版本不兼容,报错AttributeError: Can’t get attribute ‘SPPF’ on <module ‘models.common’
  20. Python大小写转换

热门文章

  1. 数学原理-高等数学复习笔记 ——1.1 泰勒公式 泰勒展开式
  2. 【AUTOSAR-CanTp】-2.11-UDS诊断响应帧数据段data padding数据填充和data optimization数据优化(理论+配置)
  3. 星载合成孔径雷达导论——合成孔径雷达概述
  4. 各类软件开发文档的英文缩写
  5. Android NFC 读写示例
  6. 药品食品管理功能性食品体系 国稻种芯:药食同源大健康产业
  7. 3年的车载测试给我带来了什么?
  8. 通过枚举窗口获得窗口句柄名字并重命名窗口
  9. Cinema 4D 中的 Redshift 概述
  10. ASP.NET 视频播放器