【Bug已解决】openclaw: permission model restricted / Cannot access system files — OpenClaw 权限模型受限解决方案1. 问题描述OpenClaw 因权限模型限制无法访问系统文件或执行特定操作# 权限受限 $ openclaw --auto-approve 修改 /etc/hosts Error: Permission denied Cannot modify files outside workspace. # 或系统文件访问受限 $ openclaw 分析 /etc/nginx/nginx.conf Error: Access denied Path /etc/ is outside allowed directories. # 或命令执行受限 $ openclaw --auto-approve 运行 sudo apt install Error: Permission model restricted Cannot execute privileged commands. # 或目录访问受限 $ openclaw 分析 /var/log/ Error: Permission denied Directory /var/log/ not in allowed paths.这个问题在以下场景中特别常见访问系统目录/etc、/var需要权限提升工作区外文件安全限制配置不允许沙箱模式2. 原因分析原因分类具体表现占比系统目录/etc /var约 35%工作区外路径约 25%权限提升sudo约 20%安全限制沙箱约 10%配置不允许config约 5%命令受限privileged约 5%3. 解决方案方案一在工作区内操作最推荐# 步骤 1将文件复制到工作区 cp /etc/nginx/nginx.conf /project/config/nginx.conf openclaw 分析 /project/config/nginx.conf # 步骤 2或创建符号链接 ln -s /etc/nginx/nginx.conf /project/nginx.conf openclaw 分析 /project/nginx.conf # 步骤 3在项目内操作 cd /project openclaw 分析 src/index.js # 步骤 4验证 openclaw --print hello方案二配置允许的路径# 步骤 1在配置中添加允许路径 cat .openclaw/config.json EOF { allowedPaths: [ /project, /etc/nginx, /var/log ] } EOF # 步骤 2验证 python3 -m json.tool .openclaw/config.json # 步骤 3测试 openclaw 分析 /etc/nginx/nginx.conf # 步骤 4验证 openclaw --print hello方案三使用 --allow-path# 步骤 1使用命令行参数 openclaw --allow-path /etc/nginx 分析 /etc/nginx/nginx.conf # 步骤 2多个路径 openclaw --allow-path /etc/nginx --allow-path /var/log task # 步骤 3或使用通配符 openclaw --allow-path /etc/* task # 步骤 4验证 openclaw --allow-path /etc --print hello方案四手动执行系统命令# 步骤 1手动读取系统文件 cat /etc/nginx/nginx.conf /tmp/nginx.conf openclaw 分析 /tmp/nginx.conf # 步骤 2手动执行命令 sudo apt install -y package openclaw 分析安装结果 # 步骤 3手动修改系统文件 sudo cp /project/config/hosts /etc/hosts openclaw 验证 /project/config/hosts # 步骤 4验证 openclaw --print hello方案五使用 sudo 运行 OpenClaw不推荐# 步骤 1使用 sudo sudo openclaw 分析 /etc/nginx/nginx.conf # 步骤 2或更改文件权限 sudo chmod 644 /etc/nginx/nginx.conf sudo chown $(whoami) /etc/nginx/nginx.conf openclaw 分析 /etc/nginx/nginx.conf # 步骤 3警告 # 不推荐使用 sudo 运行 OpenClaw有安全风险 # 步骤 4验证 openclaw --print hello方案六使用 --full-auto 允许列表# 步骤 1配置允许列表 cat .openclaw/config.json EOF { fullAuto: true, allowedPaths: [/project, /tmp], deniedPaths: [/etc, /var, /usr], allowSystemCommands: false } EOF # 步骤 2验证 python3 -m json.tool .openclaw/config.json # 步骤 3测试 openclaw --full-auto task # 步骤 4验证 openclaw --print hello4. 各方案对比总结方案适用场景推荐指数难度方案一工作区内通用⭐⭐⭐⭐⭐低方案二配置路径长期⭐⭐⭐⭐⭐低方案三--allow-path临时⭐⭐⭐⭐⭐低方案四手动执行系统⭐⭐⭐⭐⭐低方案五sudo不推荐⭐中方案六允许列表安全⭐⭐⭐⭐低5. 常见问题 FAQ5.1 为什么不能访问 /etcOpenClaw 的安全模型限制访问工作区外的目录。5.2 如何允许访问特定路径在 config.json 中设置allowedPaths或使用--allow-path。5.3 如何访问系统文件复制到工作区cp /etc/file /project/file。5.4 sudo 运行 OpenClaw 安全吗不推荐。有安全风险可能执行危险操作。5.5 如何修改系统文件手动修改sudo cp /project/file /etc/file。5.6 --allow-path 怎么用openclaw --allow-path /etc/nginx task5.7 allowedPaths 配置{allowedPaths: [/project, /etc/nginx]}5.8 工作区是什么OpenClaw 运行的项目目录包含 AGENTS.md 或 .openclaw/。5.9 沙箱模式默认启用限制文件访问和命令执行范围。5.10 排查清单速查表□ 1. cp 系统文件到工作区 □ 2. ln -s 创建符号链接 □ 3. config.json: allowedPaths □ 4. --allow-path /etc/nginx □ 5. 手动读取: cat /tmp/file □ 6. 手动执行: sudo apt install □ 7. 手动修改: sudo cp □ 8. 不推荐 sudo openclaw □ 9. deniedPaths 限制危险路径 □ 10. allowSystemCommands: false6. 总结根本原因权限受限最常见原因是访问系统目录35%和工作区外文件25%最佳实践将系统文件复制到工作区cp /etc/file /project/file配置路径在 config.json 中设置allowedPaths允许特定路径手动执行手动执行系统命令让 OpenClaw 只分析结果最佳实践建议不使用 sudo 运行 OpenClaw使用--allow-path临时允许故障排查流程图flowchart TD A[权限受限] -- B[在工作区内操作] B -- C[cp /etc/file /project/file] C -- D[openclaw 分析 /project/file] D -- E{成功?} E --|是| F[✅ 问题解决] E --|否| G[配置允许路径] G -- H[config.json: allowedPaths] H -- I[python3 -m json.tool 验证] I -- j[openclaw 分析 /etc/file] j -- K{成功?} K --|是| F K --|否| L[使用 --allow-path] L -- M[openclaw --allow-path /etc task] M -- N{成功?} N --|是| F N --|否| O[手动执行] O -- P[cat /etc/file /tmp/file] P -- Q[openclaw 分析 /tmp/file] Q -- R{成功?} R --|是| F R --|否| S[检查配置] S -- T[deniedPaths 检查] T -- U{路径被禁止?} U --|是| V[从 deniedPaths 移除] U --|否| W[使用符号链接] V -- j W -- X[ln -s /etc/file /project/file] X -- D F -- Y[长期: 工作区 allowedPaths 手动] Y -- Z[✅ 长期方案]