在 Linux 上部署的 ZooKeeper,“设置权限”通常有两种理解,下面分别说明:
ZooKeeper 通过 ACL(Access Control List) 控制对 znode 的访问。
READ:读取节点和子节点WRITE:写入节点CREATE:创建子节点DELETE:删除子节点ADMIN:设置权限常见有:
world:所有人(world:anyone:cdrwa)auth:已认证用户digest:用户名+密码(最常用)ip:指定 IPecho -n user:password | md5sum
例如:
echo -n admin:123456 | md5sum
# 输出:e10adc3949ba59abbe56e057f20f883e
zkCli.sh -server localhost:2181
addauth digest admin:123456
create /test node-data digest:admin:e10adc3949ba59abbe56e057f20f883e:cdrwa
getAcl /test
setAcl /test digest:admin:e10adc3949ba59abbe56e057f20f883e:cdrwa
如果你是指 ZooKeeper 在 Linux 上的运行权限:
useradd zookeeper
chown -R zookeeper:zookeeper /opt/zookeeper
chown -R zookeeper:zookeeper /var/lib/zookeeper
启动:
su zookeeper -c "/opt/zookeeper/bin/zkServer.sh start"
chmod 700 /var/lib/zookeeper
chmod 600 /var/lib/zookeeper/myid
chmod 640 /opt/zookeeper/conf/zoo.cfg
# 只允许指定 IP 访问 2181
iptables -A INPUT -p tcp --dport 2181 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 2181 -j DROP
或使用 firewalld:
firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --reload
✅ 生产环境:
digest 认证world:anyone如果你能具体说明是 “节点权限” 还是 “Linux 系统权限”,我可以给你更精确的配置示例。