Zookeeper的ACL权限控制
2018-02-05 00:00
344 查看
摘要: Authentication is not valid : /dlw
检查目录权限
修改目录ACL权限,表示为/dlw目录添加accumulo用户,密码的MD5哈希码为SkvnZlrIQ19GNd7eLDXGKg0Esgw=,r表示只读
再检查目录权限
发现此时该目录已经因为权限不足无法访问
突然发现虽然知道accumulo用户密码的MD5值,但是并不知道密码是多少,然后对/dlw目录就无法访问了
这时可以使用zookeeper的acl超级管理员进行操作
添加一行
修改启动命令,找到nohup,把SUPER_ACL添加到启动命令中
分发zkServer.sh到其它zookeeper节点,重启zookeeper服务
再登录zkCli.sh,连接超级管理员super,就可以对/dlw进行操作
把/dlw目录的Acl修改为初始默认的
auth:不使用任何id,代表任何已确认用户。
ip:Client端由IP地址验证,譬如172.2.0.0/24
world:固定用户为anyone,为所有Client端开放权限
super:在这种scheme情况下,对应的id拥有超级权限,可以做任何事情(cdrwa)
Read 允许对本节点GetChildren和GetData操作
Write 允许对本节点SetData操作
Delete 允许对子节点Delete操作
Admin 允许对本节点setAcl操作
ACL权限设置时分别用cdrwa简写表示
权限测试
创建目录[zk: localhost:2181(CONNECTED) 1] create /dlw "dlw" Created /dlw
检查目录权限
[zk: localhost:2181(CONNECTED) 3] getAcl /dlw 'world,'anyone : cdrwa
修改目录ACL权限,表示为/dlw目录添加accumulo用户,密码的MD5哈希码为SkvnZlrIQ19GNd7eLDXGKg0Esgw=,r表示只读
[zk: localhost:2181(CONNECTED) 5] setAcl /dlw digest:accumulo:SkvnZlrIQ19GNd7eLDXGKg0Esgw=:r cZxid = 0x30000003f ctime = Mon Feb 05 16:47:14 CHOT 2018 mZxid = 0x30000003f mtime = Mon Feb 05 16:47:14 CHOT 2018 pZxid = 0x30000003f cversion = 0 dataVersion = 0 aclVersion = 1 ephemeralOwner = 0x0 dataLength = 5 numChildren = 0
再检查目录权限
[zk: localhost:2181(CONNECTED) 6] getAcl /dlw 'digest,'accumulo:SkvnZlrIQ19GNd7eLDXGKg0Esgw= : r
发现此时该目录已经因为权限不足无法访问
[zk: localhost:2181(CONNECTED) 7] ls /dlw Authentication is not valid : /dlw
突然发现虽然知道accumulo用户密码的MD5值,但是并不知道密码是多少,然后对/dlw目录就无法访问了
这时可以使用zookeeper的acl超级管理员进行操作
Zookeeper的ACL超级管理员
修改zookeeper的启动脚本$ cd $ZOOKEEPER_HOME/bin $ vi zkServer.sh
添加一行
SUPER_ACL="-Dzookeeper.DigestAuthenticationProvider.superDigest=super:xQJmxLMiHGwaqBvst5y6rkB6HQs=" super:xQJmxLMiHGwaqBvst5y6rkB6HQs=表示super:admin
修改启动命令,找到nohup,把SUPER_ACL添加到启动命令中
nohup $JAVA $ZOO_DATADIR_AUTOCREATE "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" \ "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" "${SUPER_ACL}" \ -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
分发zkServer.sh到其它zookeeper节点,重启zookeeper服务
再登录zkCli.sh,连接超级管理员super,就可以对/dlw进行操作
[zk: localhost:2181(CONNECTED) 14] addauth digest super:admin [zk: localhost:2181(CONNECTED) 15] ls /dlw []
把/dlw目录的Acl修改为初始默认的
[zk: localhost:2181(CONNECTED) 23] setAcl /dlw world:anyone:crwda cZxid = 0x30000003f ctime = Mon Feb 05 16:47:14 CHOT 2018 mZxid = 0x30000003f mtime = Mon Feb 05 16:47:14 CHOT 2018 pZxid = 0x30000003f cversion = 0 dataVersion = 0 aclVersion = 2 ephemeralOwner = 0x0 dataLength = 5 numChildren = 0 [zk: localhost:2181(CONNECTED) 24] getAcl /dlw 'world,'anyone : cdrwa
Zookeeper的认证方式
digest:Client端由用户名和密码验证,譬如user:password,digest的密码生成方式是Sha1摘要的base64形式auth:不使用任何id,代表任何已确认用户。
ip:Client端由IP地址验证,譬如172.2.0.0/24
world:固定用户为anyone,为所有Client端开放权限
super:在这种scheme情况下,对应的id拥有超级权限,可以做任何事情(cdrwa)
节点的权限(perms)主要有以下几种:
Create 允许对子节点Create操作Read 允许对本节点GetChildren和GetData操作
Write 允许对本节点SetData操作
Delete 允许对子节点Delete操作
Admin 允许对本节点setAcl操作
ACL权限设置时分别用cdrwa简写表示
相关文章推荐
- ZooKeeper ACL权限控制
- ZooKeeper设置ACL权限控制
- ZooKeeper设置ACL权限控制
- Zookeeper(四)Acl权限控制
- ZooKeeper3.4.6学习笔记(四)权限控制ACL
- zookeeper使用ACL进行权限控制C++
- ZooKeeper通过Auth和ACL完成节点的权限控制。
- OpenLDAP:用ACL控制访问权限
- ZooKeeper ACL权限设置
- zookeeper ACL 权限验证
- Zookeeper客户端API之节点检查和权限控制(十一)
- Linux学习记录--ACL权限控制
- 您不具备查看该目录或页面的权限,因为访问控制列表 (ACL) 对Web服务器上的该资源进行了配置
- ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表
- acl和rbac权限控制区别
- Hadoop_Hdfs ACL 权限控制详解
- Linux系统配置 Linux访问控制列表(ACL)的权限控制方法
- kafka权限控制-Acl
- zookeeper java调用及权限控制
- 网络层访问权限控制技术-ACL详解 (1)