0 课程地址
https://coding.imooc.com/lesson/201.html#mid=12704
1 重点关注
1.1 ACL命令行
getAcl:获取某个节点的acl权眼信息
setAcl:设置某个节点的acl权限信息
addauth:输入认证授权信息,注册时输入明文察码(登录 但是在zk的系统里,密码是以加密的形式存在的
1.2 实操getAcl
- 启动zk服务端和客户端(必须启动客户端,不然set和get命令没有)
./zkServer.sh start
./zkCli.sh
- getAcl操作获取权限
create /imooc/abc aaa getAcl /imooc/abc
返回结果:'world,'anyone:
:cdrwa
1.3 Acl构成(针对1.2返回的结果)
zk的acl通过[scheme:id:permissions]来构成权限列表
- scheme:代表采用的某种权限机制
- id:代表允许访问的用户
- permissions:权限组合字符串
1.4 ACL之scheme介绍:
- world : world下只有一个id,即只有一个用户,也就是anyone,那么组合的写法就是 world:anyone:[permissions]
任何人都可以访问
- auth:代表认证登录,需要注册用户有权限就可以,形式为auth:user:password:[permissions]
密码明文访问
- digest:需要对密码加密才能访问,组合形式为digest: username:BASE64(SHA1(password)) :[permissions]
密码密文访问
- ip:当设置为ip指定的ip地址,此时限制ip进行访问,
比如ip:192.168.1.1:[permissions]
- super: 代表超级管理员,拥有所有的权眼
需要修改配置,所有用户登录后都会有管理员的所有权限,一般不会去设置,高危操作
- 案例
setAcl /path auth:lee:lee:cdrwa
setAcl /path digest:lee:BASE64(SHA1(password))cdrwa
是等价的,在通过
addauth digest lee:lee 后都能操作指定节点的权限
2 课程内容
2.1 ACL(access control list)权限控制简介
针对节点可以设冒相关读写等权限,目的为了保障数据安全性
权限permissions可以指定不同的权限范围以及角色
3 Coding
诸葛