五、权限系统详解

五、权限系统详解

OpenCode 的权限系统控制 AI 可以访问哪些工具和资源。

权限模式

每个工具可以有三种权限模式:

  • allow:自动允许,不询问用户
  • deny:自动拒绝,不执行
  • ask:询问用户,由ǜ�用户决定

配置方式

在 opencode.json 中配置:

jsonc 复制代码
{
  "permission": {
    "read": "allow",
    "edit": "ask",
    "bash": "deny"
  }
}

支持 Glob 模式匹配:

jsonc 复制代码
{
  "tools": {
    "read": true,
    "edit": "ask",
    "bash*": false
  }
}

权限级别

权限按以下优先级评估(从高到低):

  1. Agent 级别:特定 Agent 的权限配置
  2. 工具级别:全局工具权限
  3. 默认级别:默认行为

Agent 级权限

可以为不同 Agent 设置不同的权限:

jsonc 复制代码
{
  "agent": {
    "code-reviewer": {
      "permission": {
        "read": "allow",
        "edit": "deny",
        "bash": "deny"
      }
    }
  }
}

这样,code-reviewer Agent 只能读取文件,无法修改或执行命令。

Skill 权限

也可以控制 AI 能够加载哪些 Skill:

jsonc 复制代码
{
  "permission": {
    "skill": {
      "*": "allow",
      "internal-*": "deny",
      "experimental-*": "ask"
    }
  }
}

实际案例

比如你想让一个 Agent 只读不写:

jsonc 复制代码
{
  "agent": {
    "reviewer": {
      "description": "代码审查专家,只读模式",
      "mode": "subagent",
      "permission": {
        "bash": "deny",
        "edit": "deny",
        "write": "deny",
        "read": "allow"
      }
    }
  }
}

权限提示与日志

当权限被拒绝时,OpenCode 会记录日志:

复制代码
Tool "bash" was blocked by permission settings.
Allowed tools: read, glob, grep

安全建议

  1. 最小权限原则:只给 AI 必要的权限
  2. 分层管理:不同 Agent 给不同权限
  3. 定期审查:定期检查权限配置是否合理
  4. 注意布尔值:老版本使用 true/false,新版本用 allow/deny/ask

例如,生产环境中可以这样配置:

jsonc 复制代码
{
  "permission": {
    "read": "allow",
    "glob": "allow",
    "grep": "allow",
    "edit": "ask",
    "write": "ask",
    "bash": "deny",
    "webfetch": "allow"
  }
}

这样配置能在保证安全的同时,让 AI 发挥最大效率。

总结

权限系统是 OpenCode 安全性的基石。通过本文你学会了:

  • 三种权限模式:allow/deny/ask
  • 权限的分级配置:全局、工具、Agent
  • 安全配置建议和实践案例

下一篇文章将介绍如何通过 MCP 协议为 OpenCode 添加外部工具能力。

相关推荐
用户56190350693336 分钟前
多环境 API 怎么管理?dev/test/prod 一套规范
ai编程
lifallen1 小时前
长任务怎样选择遗忘:clearing、compaction 与 memory
人工智能·学习·ai·ai编程
却尘1 小时前
Agent Framework(2):差旅助手是怎样跑完一次 `RunAsync` 的
aigc·ai编程
chengliu05082 小时前
Crayfish 与 WorkBuddy 容器版:桌面 Agent、容器运行时,以及相对 RPA 的真实优势
ai编程
plainGeekDev2 小时前
软件工程术语库·前端·移动·AI·管理篇
aigc·ai编程·claude
花椒技术3 小时前
客服Agent:一个已交付 Agent 的工程实现拆解
agent·ai编程·产品
_codeOH4 小时前
Agent 记忆系统设计实战:让 AI 拥有长期记忆的工程方案
人工智能·ai编程
赫媒派4 小时前
OpenAI Recurrent Depth:3个安全隐患
安全·openai·ai编程
咸鱼老弟4 小时前
用 Cursor Rules / CLAUDE.md 把团队规范"固化"进 AI 编程工作流
ai编程
全栈弄潮儿4 小时前
我的 AI 编程日常习惯:如何真正提升效率
aigc·openai·ai编程