目 录CONTENT

文章目录

OpenClaw进阶玩法之权限控制

过客
2026-02-24 / 0 评论 / 0 点赞 / 2 阅读 / 0 字

有了多个Agent后,可能会涉及到了一些权限控制了。

Tools工具使用

比如让 Coder 专注于写代码,不给他用不到的一些能力,直接在 Agent 配置里加 tools 字段,限制可用哪些工具,哪些工具不能用。

{
  agents: {
    list: [
	  {
        "id": "coder",
        "name": "coder",
        "workspace": "/root/.openclaw/workspace-coder",
        "agentDir": "/root/.openclaw/agents/coder/agent",
        "model": "zngw/qwen3-coder-next",
        "tools": {
          "allow": ["read", "write", "edit", "exec", "process"],
          "deny": ["gateway", "cron", "message"]
        }
      }
    ]
  }
}
  • 允许使用:文件的读、写、改功能,可执行命令和进程管理。
  • 禁用功能:自身网关相关,定时任务,主动给用户发消息。

沙箱模式

工具限制是"软性"的——Agent 仍然在主机上运行,理论上可以访问所有文件。如果你需要更严格的隔离,比如 Agent 要对公司群中,就需要沙箱模式更安全,在Agent中添加sandbox参数。沙箱模式是基于Docker环境的,所以,要开启沙箱模式必须先安装Docker。

{
  agents: {
    list: [
	  {
        "id": "coder",
        "name": "coder",
        "workspace": "/root/.openclaw/workspace-coder",
        "agentDir": "/root/.openclaw/agents/coder/agent",
        "model": "zngw/qwen3-coder-next",
        "tools": {
          "allow": ["read", "write", "edit", "exec", "process"],
          "deny": ["gateway", "cron", "message"]
        },
		"sandbox": {
          "mode": "all",
          "scope": "agent",
          "workspaceAccess": "ro",
		  "docker": {
            "binds": [
              "/home/git:/git:rw"
            ]
          }
        }
      }
    ]
  }
}
  • mode:有三个选项:
    • off:不启用沙箱
    • non-main:只有非 main session 启用
    • all:所有 session 都启用。
  • scope 控制容器粒度:
    • session:每个会话一个容器
    • agent:每个 Agent 一个容器
    • shared:所有人共用一个容器
  • workspaceAccess:控制工作目录的访问权限
    • none:完全隔离
    • ro:只读
    • rw:读写。
  • docker.binds:类似docker的目录映射

上面配置意思是:对于 coder agent来说,所有的session都启用沙箱,整个coder agent使用一个容器,不能访问主机上的其他文件,对自己的工作目录/root/.openclaw/workspace-coder只有读的权限(可以读相应md配置),把主机的 home/git目录以可读写模式挂载到容器里的 /git目录中。

超级权限用户

如果你想在沙箱中能跳出来对主机操作,可以给帐号加白名单的权限。这个要在 tools.elevated`,这个是最外层的tools配置,不是agent中的tools。如:

"tools": {
    "elevated": {
      "enabled": true,
      "allowFrom": {
        "feishu": [
          "ou_有超级权限的飞书ID"
        ],
		"telegram": [
		  "tg:有超级权限的tgID"
		]
      }
    }
  }

白名单里的用户可以发送 /elevated on 来穿透沙箱,在主机上执行命令。发送 /elevated full 还能自动批准所有 exec。用完后发 /elevated off 恢复沙箱模式。

  • tg:输入/elevated选择机器人,再选择on、off、ask、full
  • 飞书:输入 @机器人 /elevated on@
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区