# Claude Code 权限一直在弹，Manual、Auto 和 /sandbox 怎么分？

**URL:** <https://www.shiqidu.com/t/topic/1933>\
**Category:** 人工智能\
**Tags:** Claude, AICoding, 问与答, 信息安全\
**Created:** [2026 年11 月 4 日 11:20 UTC](https://www.shiqidu.com/t/topic/1933 "2026-11-04T11:20:48Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![shiqidu\_editor](https://www.shiqidu.com/user_avatar/www.shiqidu.com/shiqidu_editor/32/528_2.png) [@shiqidu\_editor](https://www.shiqidu.com/u/shiqidu_editor)\
发布日期： [2026 年11 月 4 日 11:20 UTC](https://www.shiqidu.com/t/topic/1933/1 "2026-11-04T11:20:48Z")

</div>

确认框跟着手指走：改两行文件问一次，跑一条测试又问一次。有人嫌烦，想一键全开。也有人怕它摸到密钥目录，又不敢放。官方 [Security](https://docs.claude.com/en/docs/claude-code/security) 页把权限模式、sandbox 和凭证存放写在一起。先把「会话默认从哪档起步」对上，再谈要不要收紧，比对着弹窗瞎点省事。

## 会话默认从哪档起

Security 页写得很直： **交互式终端和 VS Code 会话，内置起点是 Auto mode** 。Manual、别的界面、以及改起始模式的设置，文档用 “Which mode a session starts in” 那一节分开说明。官方页把 Auto 标成上述两种交互场景的默认起点。

两档差别可以记成「谁来拦第一道」：

- Manual：会话先按只读权限起。改文件、跑测试、执行命令前会问你，你可以批一次或长期允许。内置的只读命令，比如 `ls`、`cat`、`git status`，可以不问就跑。
- Auto：另有一个分类器模型代你审动作，把判定为不安全的拦下。你自己写的 ask / deny 规则仍然生效，组织也可以关掉 Auto。

Auto 并不是「关掉所有确认」。文档还单独写了 Accept Edits：自动批准工作目录内的文件编辑，以及 `mkdir`、`touch`、`rm`、`mv`、`cp`、`sed` 这类固定的文件系统 Bash 命令。别的 Bash、以及工作目录外的路径，照样会问。想少打扰，更稳的是按项目加 allow 规则，或用 `/sandbox` 划边界，而不是冲着「全部免确认」去。

分类器拦下动作时会通知你，最近被拦的条目可以在 `/permissions` 里看到，必要时再批准重试。Best practices 里把两端的代价写得很白：Manual 太密容易点到手麻。`bypassPermissions` 只适合一次性容器这类可丢弃环境——日常开发别当默认。会话里也可以用 `Shift+Tab` 在权限模式之间切换，或从 shell 用 `--permission-mode manual` 起会话。

## `/sandbox` 管的是 Bash 边界

权限模式管的是「要不要问人」。Bash 若还要文件系统和网络隔离，用 `/sandbox` 配置沙箱边界，让 Claude Code 在划定范围内少弹窗也能自己干活。Manual 下还有工作目录边界：文件工具读写启动目录及其子目录之外时会先问。你批准过的 Bash 仍可能写到当前用户权限够得到的任何地方。要把 Bash 也限在操作系统层，得把 sandbox 打开。

网络侧单独看一眼也行。Manual 下，`curl`、`wget` 这类拉网页的命令默认不会被自动批准，表现和其他非只读 Bash 一样会提示。想彻底禁，写进 `permissions.deny`。文档提醒：deny 规则匹配的是「写成什么样的命令」。不依赖命令文本的网络隔离，要看 sandbox 的网络策略。

敏感目录常见做法是 deny 规则拦 `Read`，再配合 sandbox。官方例子里对 `.env` 一类路径的 deny，在 Auto 和更宽松的模式下仍然生效。规则匹配的是工具调用，不是「意图」：`Read` 规则能挡住常见的读文件命令，挡不住任意脚本自己打开文件。`WebFetch` 的域名 deny 也不等于挡住同域名的 `curl`，除非 sandbox 也开着。严格 sandbox 模式下，被拦命令不能再请求「出沙箱重试」，适合密钥目录、生产配置副本这类目录。

## 凭证放哪

Security 页的 Credential Management：API key 和 token，macOS 有 Keychain 就进 Keychain。Linux 写在 mode `0600` 的文件里。Windows 则落在继承当前用户配置目录访问控制的文件里。本机多用户、共享开发机时，先确认文件权限没被放宽。

装好后若弹窗节奏不对劲，可以按这个顺序试：先确认当前是 Auto 还是 Manual。敏感路径用 deny 钉死。Bash 需要隔离再开 `/sandbox`。高频且确实安全的命令再逐条放进 allow。整页「全部批准、永不询问」留给可丢弃环境，别当成日常省事开关。命令行里密码会不会进进程列表，是另一条排查线，这篇只谈权限 UX 和 sandbox。

你们项目默认留 Auto，还是一进来就切 Manual？敏感目录是靠 deny，还是主要靠 sandbox？
