多项目隔离 · OpenClaw · HowTo

2026 OpenClaw MeshMac 实战:共享节点上按项目拆分配置目录日志路径最小权限可复现步骤

2026.03.30 Meshmac 约 7 分钟阅读

💻🚀 多用户共用一台 MeshMacOpenClaw 时,配置与日志混写会把排障变成猜谜。本文给可抄步骤:每项目独立配置根日志分卷或子路径目录权限与最小 scope 令牌,并附检查点命令。与环境模板与分环境密钥凭据最小权限同读更稳;总览见多节点部署指南

痛点拆解

全局默认目录被多项目写入,技能缓存与本地状态互相污染。 日志打在单一文件,审计无法按项目切片。 复用宽权限令牌,一旦泄露影响所有队列与频道。

日志与配置策略矩阵

先选型再落盘(对照表可直接贴评审纪要):

维度独立配置子树日志独立 APFS 卷日志同卷子路径
隔离强度高(路径天然分界)高(配额与卸载)中(靠权限与轮转)
运维成本
适用默认必选合规或多租户计费小团队成本敏感

步骤 1:目录骨架与权限

team_alpha / proj_ios 为例,组名与项目一一对应:

sudo dseditgroup -o create proj_ios 2>/dev/null || true
sudo mkdir -p /srv/openclaw/{team_alpha/proj_ios/{config,logs},_quarantine}
sudo chown -R root:proj_ios /srv/openclaw/team_alpha/proj_ios
sudo chmod 0750 /srv/openclaw/team_alpha/proj_ios/config
sudo chmod 0770 /srv/openclaw/team_alpha/proj_ios/logs

检查点:namei -l /srv/openclaw/team_alpha/proj_ios/config 每一级目录应为 drwxr-x--- 且组为 proj_ios

步骤 2:绑定每项目配置根

在 LaunchAgent 或 systemd 风格 plist 中注入(示意变量名,团队可与现有模板对齐):

export OPENCLAW_CONFIG_ROOT=/srv/openclaw/team_alpha/proj_ios/config
export OPENCLAW_STATE_DIR=/srv/openclaw/team_alpha/proj_ios/config/state
install -d -m 0750 -g proj_ios "$OPENCLAW_STATE_DIR"

模板分层与密钥仍走仓库渲染流程,细节见上文环境模板专文;此处只保证运行时根不回落到用户家目录。

步骤 3:日志分卷或子路径

子路径模式(默认可用):

export OPENCLAW_LOG_DIR=/srv/openclaw/team_alpha/proj_ios/logs
install -d -m 0770 -g proj_ios "$OPENCLAW_LOG_DIR"
# logrotate 片段:按项目文件,保留 14~30 天

分卷模式:将卷挂载到 /srv/openclaw/team_alpha/proj_ios/logs 后再 chgrp proj_ios,可在磁盘报表里直接按卷做配额。

步骤 4:最小权限令牌

为每项目签发仅告警仅读构建状态的机器人令牌,禁止写仓库设置类 scope;轮换流程可与频道告警与令牌轮换一致。密钥文件落地仍建议 0440 + 单一服务账户只读。

sudo install -m 0440 -g proj_ios secrets/proj_ios/notify.token \
  /srv/openclaw/team_alpha/proj_ios/config/secrets/notify.token
sudo stat -f "%Sp %g" /srv/openclaw/team_alpha/proj_ios/config/secrets/notify.token

步骤 5:检查点与排错

发布前后跑三条探测,失败即回滚配置根或权限:

python3 - <<'PY'
import os
root = os.environ["OPENCLAW_CONFIG_ROOT"]
assert os.path.commonpath([root, "/Users"]) != "/Users", "fallback home"
PY
find "$OPENCLAW_LOG_DIR" -maxdepth 1 -type f -name '*.log' -ls
test -w "$OPENCLAW_LOG_DIR" && echo "log_dir_writable"

若日志出现在其他项目子树,优先查是否继承了错误的 OPENCLAW_LOG_DIR;若权限拒绝,核对进程辅助组是否包含 proj_ios

可引用阈值

  • 配置目录 0750、密钥文件 0440,服务账户不入项目外组。
  • 文本日志保留 十四至三十天,单文件超 二百兆 强制轮转。
  • 令牌 scope 仅保留发送消息与读取运行状态两类,默认关闭仓库管理。

FAQ

问:CI 与人工共用节点怎么办?答:为 CI 单独子目录与只读构建令牌,Runner 标签与路径前缀一致,避免写 config/state

问:能否软链到家目录?答:不推荐;软链跨权限边界时 namei -l 易踩坑,审计也不直观。

下一步

把本文检查点写进发布单,和队列参数文章交叉验证。更多 OpenClaw 专题见 OpenClaw 索引;站点入口 首页帮助中心博客列表均可免登录浏览。

共享节点 · 配置与日志 · 最小权限

用独立节点验证多项目隔离

免登录首页帮助博客

项目配置根 日志分路径 最小令牌
查看套餐