Debian 上 Zookeeper 权限管理技巧
一 系统与服务账户权限
sudo apt update && sudo apt install zookeeper zookeeperdtickTime=2000dataDir=/var/lib/zookeeperclientPort=2181sudo mkdir -p /var/lib/zookeeper /var/log/zookeepersudo chown -R zookeeper:zookeeper /var/lib/zookeeper /var/log/zookeepersudo chmod -R 750 /var/lib/zookeeper /var/log/zookeeperZOOKEEPER_USER=zookeeper,避免以 root 运行。sudo ufw allow 2181/tcpsudo systemctl restart zookeeper && sudo systemctl status zookeeper;健康检查可用 echo ruok | nc localhost 2181(返回 imok 表示就绪)。二 基于 ACL 的细粒度授权
/usr/share/zookeeper/bin/zkCli.sh -server localhost:2181create /app "init"setAcl /app digest:admin:TPs1X3VtBy+JmW8Z1Y1X3VtBy+JmW8Z1Y=:cdrwasetAcl /app world:anyone:r,digest:reader:rUO5xZ1Y1X3VtBy+JmW8Z1Y1X3VtBy+JmW8Z1Y=:rgetAcl /app;切换会话验证权限边界(只读用户尝试 set /app x 应被拒绝)。create /svc "svc" digest:admin:TPs1X3VtBy+JmW8Z1Y1X3VtBy+JmW8Z1Y=:cdrwasetAcl 或使用脚本/运维工具统一设置。world:anyone:cdrwa;生产环境建议仅对必要路径授予 r 或 rw,管理员保留 cdrwa。三 启用 SASL 与 JAAS 的身份认证
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProviderJAVA_OPTS="$JAVA_OPTS -Djava.security.auth.login.config=/etc/zookeeper/jaas.conf"sudo chown zookeeper:zookeeper /etc/zookeeper/jaas.conf && sudo chmod 600 /etc/zookeeper/jaas.conf/usr/share/zookeeper/bin/zkCli.sh -server localhost:2181 -Djava.security.auth.login.config=/etc/zookeeper/jaas.conf四 网络安全与运维加固
ufw 或 nftables 实施白名单策略,避免暴露在公网。sudo apt update && sudo apt upgrade),最小化安装,禁用不必要的服务与端口。