权限与安全
2026/4/26大约 2 分钟快速入门
权限与安全
控制 Claude Code 的操作边界,在效率和安全性之间取得平衡。
权限模式
Claude Code 提供四种权限模式:
| 模式 | 说明 |
|---|---|
| Plan | 只读,不编辑不执行 |
| Auto-accept edits | 自动接受文件编辑,但命令需确认 |
| Auto-accept all | 自动接受所有操作 |
| Yolo | 跳过所有权限检查 |
权限规则
在 settings.json 中通过 permissions 配置 allow、ask、deny 数组:
{
"permissions": {
"allow": [
"Bash(git log:*)",
"Bash(npm test:*)",
"Read",
"Glob"
],
"deny": [
"Bash(rm -rf:*)"
]
}
}规则语法:Tool(command:arguments),支持通配符。
沙盒模式
/sandbox 一次性定义权限边界,Claude 在其中自由工作。支持通配符如 mcp__server__*。
沙箱配置
{
"sandbox": {
"enabled": true,
"filesystem": {
"allowWrite": ["src/", "tests/"],
"denyWrite": [".env", "config/production/"],
"denyRead": ["secrets/"]
},
"network": {
"allowedDomains": ["api.example.com"],
"allowLocalBinding": true
}
}
}YOLO 模式
claude --dangerously-skip-permissions警告
对一切请求自动说"是",建议仅在隔离环境或可信操作中使用。
Hooks(钩子)
Hooks 是在生命周期事件中自动运行的 shell 命令,提供对概率性 AI 的确定性控制:
| 事件 | 触发时机 | 用途 |
|---|---|---|
PreToolUse | 工具执行前 | 阻止危险操作 |
PostToolUse | 工具执行后 | 自动格式化、检查 |
PermissionRequest | 权限请求时 | 自动批准或拒绝 |
Notification | Claude 发通知时 | 桌面通知、Slack 通知 |
SubagentStart / SubagentStop | 代理启停 | 监控代理行为 |
通过 /hooks 或 .claude/settings.json 配置。
Hook 示例
编辑 Python 文件后自动运行 ruff 格式化:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit",
"hooks": [
{
"type": "command",
"command": "ruff check --fix $FILE_PATH"
}
]
}
]
}
}实践建议
推荐使用沙盒模式而非 YOLO 模式。沙盒让你精确控制边界,而 YOLO 完全放开了限制。对于日常开发,配置好 permissions.allow 白名单加上 sandbox 文件系统限制是最佳组合。
