1.acl(access control lists)
- 针对节点设置相关读写等权限,目的为了保障数据的安全性。
- 权限permissions可以指定不同的权限范围以及角色。
2.acl命令行
- getAcl:获取某个节点的acl权限信息。
- setAcl:设置某个节点的acl权限信息。
- addauth:输入认证授权信息,注册时输入明文密码(登录),但是在zk系统里,密码是以加密形式存在的。
3.acl的构成
- zk的acl通过【scheme:id:permssions】来构成权限列表
- schema:代表采用的某种权限机制。
- id:代表允许访问的用户。
- permissions:权限组合字符串。
4.acl的构成-schema
- world:world下只有一个id,即只有一个用户,也就是anyone,那么组合的写法就是world:anyone:[permissions]。
- auth:代表认证登录,需要注册用户有权限就可以,形式为anth:user:password:[permissions]。
- digest:需要对密码进行加密才能访问,组合形式为digest:username:BASE64(SHA1(password)):[permissions]。
- auth与digest区别:
- 前者明文,后者密文
- setAcl /path auth:lee:lee:cdrwa
- setAcl /path digest:lee:BASE64(SHA1(password))cdrwa是等价的,在通过addauth digest lee:lee后都能操作指定节点额权限
- ip:当设置ip为指定ip地址,此时限制ip进行访问,例如:ip:192.168.1.1:[permissions]。
- super:代表超级管理员,拥有所有的权限。
5.acl的构成-permissions(crdwa)
- create:创建子节点。
- read:获取节点/子节点。
- delete:删除子节点。
- write:设置节点数据。
- admin:设置权限。
6.设置权限命令world
- setAcl /imooc/anjunshuang world:anyone:cdrwa
7.设置权限命令auth
- addauth digest imooc:imooc(设置用户密码,登录操作)
- setAcl /imooc/anjunshuang auth:imooc:imooc:cdrwa
8.设置权限命令digest
- setAcl /imooc digest:ajs:SrD9OdDOwFOOuYsB7idrZ5ePo0E=:cdra
9.设置权限命令ip
- ip:192.168.1.1:cdrwa
10.acl命令行super
- 1.修改zkServer.cmd或者zkServer.sh增加super管理员。
- 2.重启zkServer
11.acl的使用场景
- 开发/测试环境分离,开发者无权操作测试库的节点,只能看。
- 生产环境上控制指定ip的服务可以访问相关节点,防止混乱。
12.zk四字命令
- zk可以通过它自身提供的简写命令来和服务器进行交互。
- 需要使用到nc命令,安装:yum install nc。
- echo [commond] | nc [ip] [port]
- echo stat | nc 127.0.0.1 2181 linux命令,查看状态信息和mode。
- ruok 查看当前服务是否启动,返回imok。
- dump 列出未经处理的会话和临时节点。
- conf 查看服务器配置。
- cons 展示连接到服务器的客户端信息。
- envi 环境变量。
- mntr 监控zk健康信息。
- wchs 展示watcher的信息。
- wchc 与wchp session与watch及path与watch的信息。