温馨提示×

Zookeeper在Linux中的权限管理

小樊
50
2025-09-06 19:55:27
栏目: 智能运维

Zookeeper在Linux中主要通过ACL(访问控制列表)认证机制实现权限管理,核心要点如下:

一、权限管理核心机制

  1. ACL(访问控制列表)

    • 权限模式(Scheme)
      • world:默认模式,所有用户可访问。
      • ip:基于IP地址限制访问,如ip:192.168.1.0/24:rw
      • auth:用户名+密码认证(需先通过addauth添加用户)。
      • digest:加密的用户名+密码认证(推荐,使用SHA-1加密)。
      • super:超级管理员模式,拥有所有权限。
    • 权限类型(Permission)
      • c(创建子节点)、d(删除子节点)、r(读取数据/子节点列表)、w(写入数据)、a(管理ACL)。
  2. 认证机制

    • 配置认证提供者:在zoo.cfg中指定认证方式,如authProvider.1=org.apache.zookeeper.server.auth.DigestAuthenticationProvider
    • 添加用户:通过addauth命令添加认证用户(如addauth digest user1:password)。

二、常用操作命令

  • 查看ACLgetAcl /path/to/node
  • 设置ACLsetAcl /path/to/node <scheme>:<ID>:<权限>,例如:
    • setAcl /node1 digest:user1:rw(设置用户user1的读写权限)。
    • setAcl /node2 ip:192.168.1.100:r(允许特定IP读取)。
  • 添加认证用户addauth <scheme> <auth>,如addauth digest zkadmin:admin123

三、配置文件设置

zoo.cfg中配置认证和ACL相关参数:

  • 启用认证提供者:authProvider.1=org.apache.zookeeper.server.auth.DigestAuthenticationProvider
  • 设置超级管理员(可选):zookeeper.DigestAuthenticationProvider.superDigest=base64encoded(SHA1(password))

四、注意事项

  • 生产环境建议:使用digestkerberos/sasl认证,避免明文密码;定期更新ACL权限。
  • 文件权限:确保Zookeeper数据目录(如/var/lib/zookeeper)和日志目录权限正确,通常设置为750,所有者为zookeeper用户。
  • SELinux:若启用需调整策略,或临时关闭测试(sudo setenforce 0)。

参考来源

0