# 权限档的文件系统规则

> 设置 read、write、deny，添加工作区根目录，并理解精确路径与 glob 的平台限制。

- 网址：https://funcoding.ai/agents/codex/configuration/permissions/filesystem/
- 核实日期：2026-10-07（命令、配置和价格以官方文档为准）
- 官方来源：[Codex 官方文档：Permissions](https://learn.chatgpt.com/docs/permissions)

---
文件规则针对沙箱内命令定义可访问范围。write 同时允许读取和修改；read 允许读取与列目录；deny 禁止读取和写入。

## 范围与覆盖

更具体的路径覆盖较宽的规则。同一路径上 deny 优先于 write，write 优先于 read。因而既可在可写工作区内拒绝某个子目录，也可在较宽 deny 内显式重新开放更窄子树。

```toml
[permissions.project-edit.filesystem]
":minimal" = "read"

[permissions.project-edit.filesystem.":workspace_roots"]
"." = "write"
".devcontainer" = "read"
"generated" = "deny"
```

将这段放进已定义的 project-edit profile。缺失或空 filesystem 表仍保持受限访问，并出现启动警告；不要将空表当作全盘访问。

## 支持的路径

| 路径 | 意义 | 是否可定义子路径 |
| --- | --- | --- |
| :root | 文件系统根 | 仅 . |
| :minimal | 常见工具需要的平台和运行时路径 | 仅 . |
| :workspace_roots | 当前会话与 profile 的有效工作区 | 可以 |
| :tmpdir | 可用时的 TMPDIR | 仅 . |
| :slash_tmp | 存在时的 /tmp | 仅 . |
| 绝对路径 | 平台绝对路径 | 可以 |
| ~/path | 当前用户主目录下路径 | 可以 |

原生 Windows 支持盘符和 UNC 绝对路径，以及 `~\work` 写法。子路径必须是内部相对后代，不能含 `.` 或 `..` 路径分量；单独的 `.` 表示基准路径。`../other-repo` 会被拒绝。

## 添加复用的工作区

```toml
[permissions.project-edit.workspace_roots]
"~/code/app" = true
"~/code/shared-lib" = true
```

true 条目添加目录，false 不启用。`:workspace_roots` 规则同时应用于运行时根目录和这些附加目录，不会用新目录替换当前会话根目录。

## 拒绝读取一类文件

```toml
[permissions.project-edit.filesystem]
glob_scan_max_depth = 3

[permissions.project-edit.filesystem.":workspace_roots"]
"**/*.env" = "deny"
```

示例应合并到已有同名表，不能重复声明。Linux、WSL 和原生 Windows 在沙箱启动前可能需要预先展开无界 `**`；glob_scan_max_depth 至少为 1，越深启动扫描工作越多。也可列出 `*.env`、`*/*.env` 等明确深度。

这些匹配模式只覆盖它们实际匹配的名称，不能视为所有秘密文件的清单。read/write glob 在各平台的可移植性较差，优先使用精确路径或子树规则，并在实际运行环境验证。
