跳到正文

CC-020:Permission denied(操作被拒绝)


问题现象

Claude Code 尝试读取或修改文件时,操作被终止,终端或对话中出现 Permission denied 提示,目标文件未被访问或修改。


根因分析

Permission denied 可能来自操作系统权限、Claude Code permission rules、sandbox、组织管理策略或目标工具本身。旧版页面把原因固定成三类,并使用未在当前官方资料中确认的 .claudeignore,现已撤下该确定性结论。

修复步骤

第一步:判断根因类型

系统层拒绝通常附有具体文件路径;Claude Code 层拒绝会在对话框或提示中明确说明权限设置。

第二步:只读检查系统文件权限

# 查看目标及父目录权限,不直接改权限
ls -ld /path/to /path/to/file

不要对项目递归执行 chmod,也不要机械套用 644/755;这可能暴露密钥或破坏可执行文件。若所有者或组织策略不符合预期,请由文件所有者或管理员按最小权限修复。

第三步:检查 Claude Code 权限规则

在会话中运行 /permissions 查看 allow/ask/deny 规则,并运行 /status 确认是否存在 managed settings。只放行完成当前任务所需的具体工具或路径,不要使用 bypassPermissions 作为通用修复。

第四步:检查 sandbox 与实际命令

claude doctor 获取只读诊断;确认报错是 Claude Code 的权限决定,还是它运行的 shell 命令返回了操作系统错误。组织管理策略不能由本地项目覆盖。


预防措施

做法避免的问题
permissions.deny 精确匹配敏感文件避免意外读取 Key、Token 和环境文件
定期检查 /permissions/status识别本地规则和组织策略
文件权限按数据敏感度和实际执行需求设置避免过度放宽权限

资料来源:Claude Code Permissions · Sandboxing · 配置诊断(2026-07-26 核对)