Ⅳ:zookeeper的acl权限控制

2021最新zookeeper系列

❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️

Ⅰ:zookeeper的单机安装 - 详细教程:https://blog.csdn.net/Kevinnsm/article/details/116134397?spm=1001.2014.3001.5501

Ⅱ:zookeeper的相关shell命令:https://blog.csdn.net/Kevinnsm/article/details/116137602?spm=1001.2014.3001.5501

Ⅲ:zookeeper之查看节点的状态信息:https://blog.csdn.net/Kevinnsm/article/details/116143218?spm=1001.2014.3001.5501

Ⅳ:zookeeper的acl权限控制:https://blog.csdn.net/Kevinnsm/article/details/116167394?spm=1001.2014.3001.5501

Ⅴ:zookeeper的相关Java Api:https://blog.csdn.net/Kevinnsm/article/details/116462557?spm=1001.2014.3001.5501

Ⅵ:zookeeper的Watcher事件监听机制:https://blog.csdn.net/Kevinnsm/article/details/116501842?spm=1001.2014.3001.5501

Ⅶ:教你一招利用zookeeper作为服务的配置中心:https://blog.csdn.net/Kevinnsm/article/details/116542974?spm=1001.2014.3001.5501

❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️


1、如何理解acl的权限控制

根据名称acl可以得出全称Access Controller List,无非就是访问控制列表,简单了说就是对zookeeper的节点做访问权限控制


2、权限模式

world只有一个用户:anyone,代表zookeeper所有人
ip对客户端使用ip地址认证
auth使用已经添加认证的用户认证
digest使用用户名,密码认证

3、授权的对象

授权对象指的是权限赋予的实体

4、授予的权限

权限ACL简写描述
createc可以创建子节点
deleted可以删除子节点
readr可以读取节点数据并显示子节点列表
writew可以设置节点数据
admina可以设置节点访问权限控制列表权限

5、授权的相关命令

命令使用方式描述
getAclgetAcl /path查看节点的权限
setAclsetAcl /path [anyone] [权限]为节点设置权限
addauthr可以读取节点数据并显示子节点列表

6、授权模式

Ⅰ、word授权模式

setAcl /path world:anyone:权限(cdraw) 设置权限

getAcl /path 获取节点权限

get /path 查看节点的权限
在这里插入图片描述

setAcl /unity/node1 world:anyone:drwa 意思是为node1节点设置world模式授权方式,对于anyone用户都有drwa权限
在这里插入图片描述
由于我没有设置create权限,所以无法在node1节点下创建子节点。
在这里插入图片描述

为/unity设置rwa权限,尝试删除/unity的子节点node2
在这里插入图片描述
很明显因为/unity没有delete权限,所有无法删除子节点

注意这些都是为父节点设置权限,操作子节点

注意如果设置权限为空,由于没有admin权限,则管理该节点的权限都没了

在这里插入图片描述

Ⅱ、IP授权模式

演示IP授权模式需要使用两台云服务器,为此我准备了两个
在这里插入图片描述
第二台需要安装jdk和zookeeper,第一章已经演示过就不再多说

第一章:zookeeper的单机安装 - 详细教程:https://blog.csdn.net/Kevinnsm/article/details/116134397?spm=1001.2014.3001.5501

❤️ 此处默认已经配置好 ❤️

注意记得将第一台云服务器的2181端口对外开放
云服务器端口对外开放详解:https://blog.csdn.net/Kevinnsm/article/details/116199190?spm=1001.2014.3001.5501

开启第一台云服务器的zookeeper服务

./zkServer.sh start

将第二台服务器cd到zookeeper的bin目录下,连接第一台服务器的zookeeper客户端,执行以下命令

.zkCli.sh -server IP地址

在这里插入图片描述

在第一个窗口创建一个父节点和两个子节点
在这里插入图片描述

在第二个窗口查看权限模式
在这里插入图片描述

Ⅱ.Ⅰ、单ip授权模式

在窗口1设置ip授权模式
setAcl /unity ip:窗口2的ip地址:cdrwa
在这里插入图片描述

在窗口2查看情况
在这里插入图片描述

此时由于设置了/unity节点的授权模式为ip模式:ip地址为
8.140.37.103;所以端口号为123.57.252.59的窗口1就不能访问

在这里插入图片描述

Ⅱ.Ⅱ、多ip授权模式

窗口1设置,查看权限(多ip中间用,隔开即可)
在这里插入图片描述
窗口2查看权限
在这里插入图片描述

Ⅲ、auth授权模式

在这里插入图片描述
上图中的密码是经过加密的

由于已经登录过,所以有权限访问访问
在这里插入图片描述
当我退出重新登录连接客户端访问该节点时,就会无权限

在这里插入图片描述
重新认证之后再访问就可以了
在这里插入图片描述

Ⅳ、digest授权模式

setAcl /path digest:用户名:密码:权限
注意这里的密码是经过SHA1和BASE64处理的密文
可以通过以下生成
echo -n super:user | openssl dgst -binary -sha1 | openssl base64
在这里插入图片描述
此处的super是用户名,user是密码

认证:

addauth digest 用户名:密码(这里的密码是明文)

Ⅴ、多模式授权

setAcl /test ip:123.57.252.59:cdrwa,auth:user:cdrwa

在这里插入图片描述

7、ACL超级管理员

有时可能某个节点经过我们设置权限之后,可能任何用户都不能访问(包括本身),所以需要一个超级管理员来进行最终操作

打开zookeeper目录下的/bin/zkServer.sh 脚本文件

vim zkServer.sh

找到如下这一行
在这里插入图片描述
加入以下
在这里插入图片描述

这是脚本中启动zookeeper的命令,默认只有两个配置项,我们可以手动添加一个超级管理员配置项

"-Dzookeeper.DigestAuthenticationProvider.superDigest=super:GR9f4mKrV2reacyCyiukMpZl5qc=“

“GR9f4mKrV2reacyCyiukMpZl5qc=”这一串是加密后的密码

之后重启服务,重新连接客户端即可

./zkServer.sh restart
./zkCli.sh -server 你的ip地址

创建一个node节点,然后设置ip授权模式,使得除了这个ip其他用户都无法访问node节点
在这里插入图片描述
在这里插入图片描述
本章结束~ ❤️

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Thecoastlines

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

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

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

打赏作者

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

抵扣说明:

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

余额充值