温馨提示×

linux zookeeper怎样设置权限

小樊
36
2026-10-16 04:49:31
栏目: 智能运维

在 Linux 上部署的 ZooKeeper,“设置权限”通常有两种理解,下面分别说明:


一、ZooKeeper 自身的访问权限(ACL 权限控制)

ZooKeeper 通过 ACL(Access Control List) 控制对 znode 的访问。

1. ACL 权限类型

  • READ:读取节点和子节点
  • WRITE:写入节点
  • CREATE:创建子节点
  • DELETE:删除子节点
  • ADMIN:设置权限

2. 认证方式(Scheme)

常见有:

  • world:所有人(world:anyone:cdrwa)
  • auth:已认证用户
  • digest:用户名+密码(最常用)
  • ip:指定 IP

3. 使用 digest 设置权限示例

(1)生成密码

echo -n user:password | md5sum

例如:

echo -n admin:123456 | md5sum
# 输出:e10adc3949ba59abbe56e057f20f883e

(2)登录 ZooKeeper

zkCli.sh -server localhost:2181

(3)创建带权限的节点

addauth digest admin:123456
create /test node-data digest:admin:e10adc3949ba59abbe56e057f20f883e:cdrwa

(4)查看权限

getAcl /test

(5)修改权限

setAcl /test digest:admin:e10adc3949ba59abbe56e057f20f883e:cdrwa

二、Linux 系统层面的权限(文件 & 用户)

如果你是指 ZooKeeper 在 Linux 上的运行权限:

1. 使用独立用户运行(推荐)

useradd zookeeper
chown -R zookeeper:zookeeper /opt/zookeeper
chown -R zookeeper:zookeeper /var/lib/zookeeper

启动:

su zookeeper -c "/opt/zookeeper/bin/zkServer.sh start"

2. 数据目录权限

chmod 700 /var/lib/zookeeper
chmod 600 /var/lib/zookeeper/myid

3. 配置文件权限

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
  • 用独立用户运行
  • 限制 2181 端口访问

如果你能具体说明是 “节点权限” 还是 “Linux 系统权限”,我可以给你更精确的配置示例。

0 踩