$cd ../troubleshooting/
升级 v2026.3.2 后失去文件权限
// 2026.3.2 安全重构将 tools.profile 默认值从 'full' 改为 'session'。原本依赖文件读写/执行权限的设置都会失效。
⚠ 受影响的用户
从 v2026.3.1 或更早版本升级到 v2026.3.2+ 的所有用户。全新安装不受影响(引导向导会正确配置 tools.profile)。
diagnose.sh
🔍 诊断问题
✗您的代理提示“我没有权限读 / 写文件”
✗代理无法安装新技能或运行命令
✗网关日志中出现 'EPERM' 或 '访问被拒绝'
fix_permissions.sh
✅ 修复方法 1 — 将 Tools Profile 设置为 'coding'(推荐)
编辑此文件:
~/.openclaw/openclaw.json
# 将 profile 设置为 'coding'
{
"tools": {
"profile": "coding"
}
}# 然后重启网关
openclaw gateway restart
allowlist_tools.json
✅ 修复方法 2 — 明确允许特定工具
# 手动将单个工具加入允许列表
{
"tools": {
"profile": "session",
"allow": ["read_file", "write_file", "run_bash", "list_dir"]
}
}re_onboard.sh
✅ 修复方法 3 — 重新运行引导向导
# 重新运行设置向导 — 将重新配置 tools.profile
openclaw setup
⚠ 不要这样做
将 'profile: "full"' 设置而不使用允许列表会给代理完全访问您的文件系统权限。仅在隔离/沙盒环境中使用此设置。
❓ 常见问题
Q1. 为什么 v2026.3.2 将默认配置改为 'session'?
安全加固,针对已报告的提示注入攻击。'session' 配置文件防止代理读写工作目录外的文件并执行任意系统命令。此前使用 'full' 配置的用户中,有人的本地文件通过精心设计的消息被泄露或覆盖。新默认是选择加入式安全:您选择重新授予哪些权限。
Q2. 'full' 配置文件安全吗?
取决于您的威胁模型。如果在私人家庭网络上运行 OpenClaw 且所有输入都来自您本人,'full' 是实用的。如果机器人连接到 Telegram/WhatsApp 并接收任意用户的消息,或通过公共 URL 可访问,在没有仔细审查的情况下避免使用 'full'。改用 'session' 或 'coding' 并使用明确的允许列表,只包含工作流实际需要的工具。
Q3. 可以为不同渠道或不同 agent 设置不同配置文件吗?
可以。在 config.yaml 中,每个渠道和每个独立的 agent 都可以有自己的 tools.profile 覆盖。例如:将 Telegram 保持在 'session'(不可信的公共输入),但将本地 CLI 会话设置为 'coding'。各 agent 还可以在渠道默认值的基础上进一步限制或扩展权限,让您可以为可信工作流安全地开放权限,而不改变全局默认值。
Q4. 'session'、'coding' 和 'full' 配置文件有什么区别?
'session' ——最安全:代理只能读写当前会话工作目录的文件,不能执行 shell 命令。'coding' ——均衡:添加了 read_file、write_file、list_dir 和带路径限制的 run_bash,仅限您的项目目录。推荐给需要文件访问的编程工作流。'full' ——无限制:所有工具启用,所有路径可访问,完整 shell 执行。仅在隔离或完全可信的环境中使用。
Q5. 如何知道我的 agent 当前在使用哪些工具?
在网关配置中启用 'log_level: debug' 并重启。每次工具调用都会记录工具名称、参数和触发的 agent。也可以运行 'openclaw tools list --profile <名称>' 查看每个配置文件下启用了哪些工具。这有助于您建立最小允许列表——从调试日志查看实际调用的内容,然后在 allow 数组中精确设置这些工具。
Q6. 升级后我的技能停止工作了,这相关吗?
是的,很可能相关。安装依赖项、写文件或运行 shell 命令的技能依赖工具访问权限。'github' 技能(运行 git 命令)、'summarize' 技能(可能写临时文件)以及任何使用 run_bash 的自定义技能在 'session' 模式下都会失败。修复方法是切换到 'coding' 配置文件(涵盖大多数技能用例),或将特定工具添加到允许列表:'allow: [run_bash, write_file, read_file]'。