权限系统概述Claude Code 的权限系统将操作分为三类不同类型的操作有不同的默认权限策略工具类型示例是否需要批准永久允许行为只读操作文件读取、Grep 搜索否不适用Bash 命令Shell 命令执行是每个项目目录和命令永久有效文件修改Edit/Write 文件是直到会话结束三种权限动作每条权限规则最终会解析为以下三种动作之一动作效果适用场景allow无需审批直接自动运行低风险、高频操作如 git status、npm run buildask弹出审批提示由你决定是否允许有一定风险的操作如文件写入、危险命令执行deny直接阻止不会执行也不会提示明确不允许的危险操作如 git push、rm -rf规则优先级deny → ask → allow。第一个匹配的规则获胜因此 deny 规则始终优先于 allow 和 ask。权限模式权限模式控制 Claude 是否在执行操作前询问用户。不同的任务需要不同级别的自主权。六种可用模式模式描述最适用场景default标准行为首次使用每个工具时提示权限入门学习、敏感工作需要完全监督acceptEdits自动接受会话的文件编辑权限受保护目录除外迭代正在审查的代码planPlan ModeClaude 可以分析但不能修改文件或执行命令探索代码库、规划重构auto自动批准工具调用并进行后台安全检查研究预览长时间运行的任务、减少提示疲劳dontAsk自动拒绝工具调用除非通过权限规则预先批准锁定环境、CI 管道bypassPermissions跳过权限提示但对受保护目录的写入仍会提示仅隔离容器和 VM受保护目录说明无论模式如何除了.claude/commands、.claude/agents和.claude/skills目录对.git、.vscode、.idea、.husky和.claude的写入永远不会自动批准。切换权限模式**会话期间切换**按ShiftTab循环切换default→acceptEdits→plan→auto启动时指定模式claude --permission-mode plan claude --permission-mode bypassPermissions设置为默认模式settings.json{permissions:{defaultMode:acceptEdits}}工作目录配置默认情况下Claude Code 只允许访问启动时的工作目录及其子目录。如果需要访问项目目录之外的路径必须显式配置。1、扩展访问方式**启动期间**使用--add-dir pathCLI 参数**会话期间**使用/add-dir命令**持久配置**添加到 settings.json 中的additionalDirectories{additionalDirectories:[~/projects/personal/**,*// 允许访问个人项目目录*~/projects/work/**,*// 允许访问工作项目目录*~/dotfiles/***// 允许访问配置文件目录*]}2、例外情况以下内容在设置额外目录后仍可访问无需额外配置.claude/skills/中的 Skills带有实时重新加载.claude/settings.json中的插件设置仅enabledPlugins和extraKnownMarketplacesCLAUDE.md 文件和.claude/rules/仅当设置CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD1时沙箱箱和权限是互补的安全层协同工作方面权限沙箱控制对象控制 Claude Code 可以使用哪些工具限制 Bash 命令可访问的文件系统和网络内容评估时机在任何工具运行之前进行评估仅适用于 Bash 命令及其子进程适用范围所有工具Bash、Read、Edit、WebFetch、MCP 等仅 Bash 命令1、启用沙箱/sandbox运行/sandbox命令启用沙箱会打开一个菜单选择沙箱模式。2、配置沙箱{sandbox:{enabled:**true**,filesystem:{allowWrite:[~/.kube,/tmp/build],*// 允许写入这些路径*denyWrite:[~/important/**],*// 阻止写入重要目录*denyRead:[~/]*// 阻止读取主目录*},network:{httpProxyPort:8080,*// HTTP 代理端口*socksProxyPort:8081*// SOCKS 代理端口*}}}**深度防御**权限和沙箱应同时启用。权限 deny 规则阻止 Claude 尝试访问受限资源沙箱限制防止 Bash 命令到达定义边界之外的资源。
03_权限管理
发布时间:2026/7/5 8:44:29
权限系统概述Claude Code 的权限系统将操作分为三类不同类型的操作有不同的默认权限策略工具类型示例是否需要批准永久允许行为只读操作文件读取、Grep 搜索否不适用Bash 命令Shell 命令执行是每个项目目录和命令永久有效文件修改Edit/Write 文件是直到会话结束三种权限动作每条权限规则最终会解析为以下三种动作之一动作效果适用场景allow无需审批直接自动运行低风险、高频操作如 git status、npm run buildask弹出审批提示由你决定是否允许有一定风险的操作如文件写入、危险命令执行deny直接阻止不会执行也不会提示明确不允许的危险操作如 git push、rm -rf规则优先级deny → ask → allow。第一个匹配的规则获胜因此 deny 规则始终优先于 allow 和 ask。权限模式权限模式控制 Claude 是否在执行操作前询问用户。不同的任务需要不同级别的自主权。六种可用模式模式描述最适用场景default标准行为首次使用每个工具时提示权限入门学习、敏感工作需要完全监督acceptEdits自动接受会话的文件编辑权限受保护目录除外迭代正在审查的代码planPlan ModeClaude 可以分析但不能修改文件或执行命令探索代码库、规划重构auto自动批准工具调用并进行后台安全检查研究预览长时间运行的任务、减少提示疲劳dontAsk自动拒绝工具调用除非通过权限规则预先批准锁定环境、CI 管道bypassPermissions跳过权限提示但对受保护目录的写入仍会提示仅隔离容器和 VM受保护目录说明无论模式如何除了.claude/commands、.claude/agents和.claude/skills目录对.git、.vscode、.idea、.husky和.claude的写入永远不会自动批准。切换权限模式**会话期间切换**按ShiftTab循环切换default→acceptEdits→plan→auto启动时指定模式claude --permission-mode plan claude --permission-mode bypassPermissions设置为默认模式settings.json{permissions:{defaultMode:acceptEdits}}工作目录配置默认情况下Claude Code 只允许访问启动时的工作目录及其子目录。如果需要访问项目目录之外的路径必须显式配置。1、扩展访问方式**启动期间**使用--add-dir pathCLI 参数**会话期间**使用/add-dir命令**持久配置**添加到 settings.json 中的additionalDirectories{additionalDirectories:[~/projects/personal/**,*// 允许访问个人项目目录*~/projects/work/**,*// 允许访问工作项目目录*~/dotfiles/***// 允许访问配置文件目录*]}2、例外情况以下内容在设置额外目录后仍可访问无需额外配置.claude/skills/中的 Skills带有实时重新加载.claude/settings.json中的插件设置仅enabledPlugins和extraKnownMarketplacesCLAUDE.md 文件和.claude/rules/仅当设置CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD1时沙箱箱和权限是互补的安全层协同工作方面权限沙箱控制对象控制 Claude Code 可以使用哪些工具限制 Bash 命令可访问的文件系统和网络内容评估时机在任何工具运行之前进行评估仅适用于 Bash 命令及其子进程适用范围所有工具Bash、Read、Edit、WebFetch、MCP 等仅 Bash 命令1、启用沙箱/sandbox运行/sandbox命令启用沙箱会打开一个菜单选择沙箱模式。2、配置沙箱{sandbox:{enabled:**true**,filesystem:{allowWrite:[~/.kube,/tmp/build],*// 允许写入这些路径*denyWrite:[~/important/**],*// 阻止写入重要目录*denyRead:[~/]*// 阻止读取主目录*},network:{httpProxyPort:8080,*// HTTP 代理端口*socksProxyPort:8081*// SOCKS 代理端口*}}}**深度防御**权限和沙箱应同时启用。权限 deny 规则阻止 Claude 尝试访问受限资源沙箱限制防止 Bash 命令到达定义边界之外的资源。