用途:该技能用于配置 Claude Code 的分层权限系统,控制 Claude 可使用的工具及其可访问的资源,在能力与安全之间取得平衡。
主要能力:说明权限层级(只读工具如文件读取、Grep、Glob 无需审批;Bash 命令需审批,可按项目加命令永久记住;文件修改如 Edit、Write 需审批,仅会话内有效)。规则按 deny → ask → allow 顺序评估,首个匹配生效,deny 始终优先。支持权限模式:default、acceptEdits、plan、delegate、dontAsk、bypassPermissions,通过设置文件中的 defaultMode 指定。bypassPermissions 会跳过所有检查,仅限隔离环境,管理员可用 disableBypassPermissionsMode: "disable" 禁用。
规则语法:格式为 Tool 或 Tool(specifier)。Bash 支持通配符,如 Bash(npm run *)、Bash(git * main);空格强制词边界,Bash(ls *) 不匹配 lsof。Read/Edit 使用 gitignore 风格路径,//path 为绝对路径,~/path 为用户主目录,/path 相对设置文件。WebFetch 用 domain: 过滤,MCP 用 mcp__server__tool,子代理用 Agent(name)。
托管设置:管理员将 managed-settings.json 部署到系统目录(macOS、Linux/WSL、Windows 各有路径),不可被用户或项目设置覆盖。设置优先级从高到低为托管设置、命令行参数、本地项目设置、共享项目设置、用户设置。
工作目录:默认可访问启动目录,可用 claude --add-dir <path>、/add-dir 或 additionalDirectories 扩展。
与沙箱配合:权限控制所有工具可用的资源,沙箱提供操作系统级限制(仅 Bash)。文件系统沙箱用 Read/Edit deny 规则,网络限制结合 WebFetch 权限与沙箱 allowedDomains。会话中可用 /permissions 查看和管理规则。
限制:Bash 参数约束模式较脆弱,可靠 URL 过滤建议 deny curl/wget 并改用 WebFetch(domain:...) 或 PreToolUse 钩子。若用户意图不匹配,应通过 /plugin-creator:plugin-lifecycle 路由。更详细的规则示例与边界情况见 references/permissions-reference.md。