权限设置

权限模型概述

Codex 的权限系统是一个多层次的安全框架,旨在保护您的文件系统和执行环境免受意外或恶意操作的侵害。权限控制贯穿 Codex 的每一个操作,确保在使用 AI 编程代理时的安全性。

权限层级

默认策略(全局默认)
    ↓
全局配置(~/.claude/settings.json)
    ↓
用户配置(~/.claude/settings.local.json)
    ↓
项目配置(项目目录/.claude/settings.json)
    ↓
会话临时授权(运行时)

文件系统权限

路径白名单

控制 Codex 可以访问的文件和目录:

{
  "permissions": {
    "allowPaths": [
      "/home/user/projects",
      "/home/user/shared-libs"
    ],
    "denyPaths": [
      "/etc",
      "/usr",
      "/home/user/.ssh",
      "/home/user/.aws"
    ]
  }
}

文件操作权限

细粒度控制不同类型的文件操作:

{
  "permissions": {
    "fileOperations": {
      "read": true,
      "write": true,
      "delete": false,
      "rename": false
    }
  }
}

敏感文件保护

Codex 会自动识别并保护以下敏感文件:

  • 密钥文件(.key, .pem, .cert
  • 配置文件(.env, .env.local, credentials.json
  • SSH 相关(~/.ssh/
  • Git 相关(.git/
  • 凭据文件(secret, credential, password

命令执行权限

命令白名单

控制 Codex 可以执行的系统命令:

{
  "permissions": {
    "allowCommands": [
      "npm",
      "npx",
      "yarn",
      "pnpm",
      "git",
      "node",
      "python",
      "pip",
      "cargo",
      "go",
      "make",
      "curl",
      "wget"
    ],
    "denyCommands": [
      "rm -rf /",
      "sudo",
      "chmod -R",
      "dd"
    ]
  }
}

危险命令检测

Codex 内置了危险命令检测机制,以下类型的命令会触发警告:

# 危险操作示例 - 会被拦截或警告
rm -rf /          # 删除根目录
sudo apt remove   # 卸载系统包
> /dev/sda        # 直接操作硬件
:wq!              # 强制写入

工具调用控制

启用/禁用工具

您可以控制 Codex 可以使用哪些工具:

{
  "permissions": {
    "tools": {
      "Read": true,
      "Edit": true,
      "Write": true,
      "Bash": true,
      "WebSearch": false,
      "WebFetch": false
    }
  }
}

工具调用频率限制

{
  "permissions": {
    "rateLimits": {
      "Bash": {
        "maxCalls": 50,
        "perMinutes": 5
      },
      "Edit": {
        "maxCalls": 100,
        "perMinutes": 5
      }
    }
  }
}

安全策略

确认模式

在确认模式下,每次操作前都需要用户确认:

{
  "permissions": {
    "confirmMode": true,
    "confirmOn": [
      "delete",
      "rename",
      "install",
      "network"
    ]
  }
}

自动拒绝策略

{
  "permissions": {
    "autoDeny": {
      "networkAccess": false,
      "packageInstallation": true,
      "fileDeletion": true,
      "environmentModification": true
    }
  }
}

审计日志

开启审计日志可以记录所有操作:

{
  "audit": {
    "enabled": true,
    "logFile": "~/.claude/audit.log",
    "includeOutput": false,
    "maxSize": "10MB"
  }
}

企业级安全配置

团队策略部署

{
  "permissions": {
    "enterprise": {
      "enforceGlobalPolicy": true,
      "disableUserOverride": false,
      "auditAllOperations": true,
      "allowedModels": ["claude-3-opus", "claude-3-sonnet"],
      "requireApproval": ["delete", "install", "network"]
    }
  }
}

安全最佳实践

  1. 最小权限原则:只授予完成任务所需的最小权限
  2. 定期审计:定期检查权限配置和操作日志
  3. 分层防护:结合系统级和 Codex 级的安全措施
  4. 敏感项目隔离:对敏感项目使用独立的配置和权限