CentOS 7 下 zookeeper ACL 超级管理员使用

  • 背景
使用 zookeeper 添加普通账户,并给某节点进行赋权,忘记密码后,无法对该节点进行操作,通过开启 ACL super 账户进行操作。
  • zkCli 连接
$ zkCli.sh
  • 添加 ACL 测试账户
# addauth digest 用户名:密码
[zk: localhost:2181(CONNECTED) 4] addauth digest test:test123
  • 新建测试节点
# create 测试节点 测试节点值
[zk: localhost:2181(CONNECTED) 3] create /test_acl value_of_test_acl
  • 对新建节点进行赋权
# setAcl 测试节点 auth:用户名:crawd (权限)
[zk: localhost:2181(CONNECTED) 5] setAcl /test_acl auth:test:crawd
# crawd 权限
- c:create 可以创建子节点
- r:read 可以读取节点数据及显示子节点列表
- a:admin 可以设置节点访问控制列表权限
- w:write 可以设置节点数据
- d:delete 可以删除子节点(仅下一级节点)
# 配置 acl 权限模式
- world:只有一个 id "anyone",代表任何人
- ip:通常是一个 ip 地址或者 ip 段
- auth:授权用户,用户名:密码
- digest:自定义,通常是username:BASE64(密码)
  • 查看节点信息
[zk: localhost:2181(CONNECTED) 7] get /test_acl 		# 获取节点值
value_of_test_acl
[zk: localhost:2181(CONNECTED) 8] stat /test_acl 		# 获取节点状态
cZxid = 0x100003cf0
ctime = Sat May 02 20:59:14 CST 2020
mZxid = 0x100003cf0
mtime = Sat May 02 20:59:14 CST 2020
pZxid = 0x100003cf0
cversion = 0
dataVersion = 0
aclVersion = 1
ephemeralOwner = 0x0
dataLength = 17
numChildren = 0
  • 开启 super 账户
$ vim zookeeper/bin/zkServer.sh
# 修改前
	nohup "$JAVA" $ZOO_DATADIR_AUTOCREATE "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" \
	"-Dzookeeper.log.file=${ZOO_LOG_FILE}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
	-XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError='kill -9 %p' \
	-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &

# 增加
	"-Dzookeeper.DigestAuthenticationProvider.superDigest=super:xQJmxLMiHGwaqBvst5y6rkB6HQs="

# 修改后
	nohup "$JAVA" $ZOO_DATADIR_AUTOCREATE "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" \
	"-Dzookeeper.log.file=${ZOO_LOG_FILE}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
	# 增加
	"-Dzookeeper.DigestAuthenticationProvider.superDigest=super:xQJmxLMiHGwaqBvst5y6rkB6HQs=" \
	-XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError='kill -9 %p' \
	-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
  • 重启 zookeeper 服务
$ zookeeper/bin/zkServer.sh restart
  • 通过 super 查看测试节点信息
[zk: localhost:2181(CONNECTED) 0] addauth digest super:admin 		# 登录
[zk: localhost:2181(CONNECTED) 1] getAcl /test_acl 					# 获取节点权限
'digest,'test:4kLbCbLRytYsfNQkaDbMuExRDDs=
: cdrwa
'digest,'dev:F68DtlM8o9v9xs9S6LL7P4VQJIM=
: cdrwa
[zk: localhost:2181(CONNECTED) 2] get /test_acl 					# 获取节点值
value_of_test_acl
  • 使用 super 删除测试节点
[zk: localhost:2181(CONNECTED) 3] delete /test_acl
  • 关闭 super 权限 && 重启 zookeeper 服务
# 删除之前增加行
"-Dzookeeper.DigestAuthenticationProvider.superDigest=super:xQJmxLMiHGwaqBvst5y6rkB6HQs=" \
# 重启 zookeeper 服务
$ zookeeper/bin/zkServer.sh restart

参考

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS 7中,管理员(也称为root用户)已经是超级管理员,具有系统中最高的权限。要使普通用户成为超级管理员,可以使用sudo命令来获取临时的超级用户权限。例如,可以通过以下步骤将用户wy99提升为超级管理员: 1. 打开终端并登录到CentOS 7系统。 2. 运行以下命令以修改sudoers文件:```sudo visudo```。 3. 在打开的文件中找到以下行:```root ALL=(ALL) ALL```。 4. 在该行下面添加一行:```wy99 ALL=(ALL) ALL```。 5. 保存并关闭文件。 现在,用户wy99将可以使用sudo命令获得临时的超级用户权限,从而执行需要管理员权限的任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [CentOS7下的常用的文件目录](https://download.csdn.net/download/weixin_38725426/14049624)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [CentOS7:添加Root权限 普通用户升级超级用户的方法](https://blog.csdn.net/New_Wang/article/details/86305811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Centos添加管理员账户,创建账户,adduser](https://blog.csdn.net/weixin_41216652/article/details/128204488)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值