启动参数看官方文档设定无需询问权限即可执行的 Tool 列表Syntax--allowedTools <rules>示例claude --allowedTools "Bash(git log *)" "Read"全网调研整理典型场景CI/CD 流水线中无人值守运行,自动授权 git/npm 命令免去交互确认只读沙箱场景:仅放行 Read/Grep,防止 agent 意外修改源文件单次临时会话授权指定 Bash 子命令,不污染持久化配置文件多 MCP server 场景中批量授权某个 server 的全部 Tool配合 --disallowedTools 组合使用,实现白名单允许+黑名单拒绝的双层精细控制实用技巧`Bash(ls *)` 有词边界不匹配 lsof,`Bash(ls*)` 无边界两者均匹配,空格位置影响匹配行为`:*` 后缀等价于尾部空格通配符:`Bash(git:*)` 与 `Bash(git *)` 完全等效timeout/time/nice/nohup/stdbuf 等进程包装器会自动剥离,`Bash(npm test *)` 也能匹配 `timeout 30 npm test`复合命令被 `&&`/`||`/`;`/`|` 分割后每条子命令须各自独立匹配 allow 规则,单条规则无法覆盖整个复合命令MCP Tool 权限支持 `mcp__server__*` 通配符,可一次授权某个 server 下所有工具用 `WebFetch(domain:example.com)` 代替 `Bash(curl *)` 限制网络访问更可靠,Bash 允许时 curl 仍可访问任意 URL常见坑用 `Bash(curl https://api.com *)` 限制目标 URL 无效:flag 顺序变化、变量替换、协议差异等均可绕过模式匹配裸工具名 `Bash` 作为 deny 规则会将工具完全移出模型上下文(Claude 看不到该工具),而 `Bash(rm *)` 仅在运行时拦截匹配调用,行为有本质差异managed settings 的 deny 优先级最高,--allowedTools 无法覆盖企业管理员在托管配置中设置的拒绝规则来源Configure permissions - Claude Code Docs (EN)配置权限 - Claude Code Docs (ZH)How to use Allowed Tools in Claude Code - Instructa.aiClaude Code CLI Cheatsheet - Shipyard回到命令字典