Zookeeper在Linux中主要通过ACL(访问控制列表)和认证机制实现权限管理,核心要点如下:
ACL(访问控制列表)
world:默认模式,所有用户可访问。ip:基于IP地址限制访问,如ip:192.168.1.0/24:rw。auth:用户名+密码认证(需先通过addauth添加用户)。digest:加密的用户名+密码认证(推荐,使用SHA-1加密)。super:超级管理员模式,拥有所有权限。c(创建子节点)、d(删除子节点)、r(读取数据/子节点列表)、w(写入数据)、a(管理ACL)。认证机制
zoo.cfg中指定认证方式,如authProvider.1=org.apache.zookeeper.server.auth.DigestAuthenticationProvider。addauth命令添加认证用户(如addauth digest user1:password)。getAcl /path/to/node。setAcl /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))。digest或kerberos/sasl认证,避免明文密码;定期更新ACL权限。/var/lib/zookeeper)和日志目录权限正确,通常设置为750,所有者为zookeeper用户。sudo setenforce 0)。参考来源: