尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Fence 沙箱策略:nix-config 如何为 AI 代理构建安全边界,让 --dangerously-skip-permissions 也能放心用

Fence 沙箱策略:nix-config 如何为 AI 代理构建安全边界,让 --dangerously-skip-permissions 也能放心用 Fence 沙箱策略nix-config 如何为 AI 代理构建安全边界让 --dangerously-skip-permissions 也能放心用【免费下载链接】nix-configWimpys NixOS, nix-darwin Home Manager Configurations ❄️项目地址: https://gitcode.com/gh_mirrors/nixco/nix-config如果你给 Claude Code 或 Codex 加上--dangerously-skip-permissions等于让 AI 代理在你机器上免审批跑命令——它能读 SSH 私钥、能git push -f、能悄悄装东西。nix-config 项目里的Fence解决的就是这个痛点用声明式配置为 AI 代理划出一条可审计的沙箱安全边界让危险模式真正变得安全可控。为什么 AI 代理需要沙箱AI 编程代理Claude Code、Codex、OpenCode、Pi为了高效工作通常希望跳过每一步权限确认。但跳过确认意味着代理拥有你当前用户的全部权限 读走~/.ssh/id_rsa、GPG 密钥、云厂商凭证 执行sudo、关机、nixos-rebuild这类破坏性命令 通过gh gist create、npm publish把数据发出去Fence 的思路是把跳过权限的代价从整个系统收缩到一个精心划定的沙箱里。代理在沙箱内全速运行沙箱外寸步难行。四个入口一行别名全程受控nix-config 为每个代理提供了带-fenced后缀的别名只在安装了标准代理入口的主机上出现别名底层代理代理侧设置claude-fencedClaude Code--dangerously-skip-permissionscodex-fencedCodex--dangerously-bypass-approvals-and-sandboxopencode-fencedOpenCode全部权限allowpi-fencedPi标准入口注意一个关键设计代理自身的安全机制全部关掉Fence 成为唯一的命令与文件系统边界。权限只在一处声明、一处审计不会出现两层沙箱互相打架的混乱。策略怎么写文件边界 命令边界Fence 的用户策略由 Home Manager 生成到~/.config/fence/fence.jsonc核心配置就两个维度写在 fence/default.nix 里1️⃣ 文件系统边界——秘密永远读不到工作区随便写禁止读SSH 密钥及整个~/.ssh、GPG 密钥、~/.aws/~/.kube/~/.azure、Docker 凭证、SOPS 解密后的秘密、shell 历史允许写项目目录、代理自身的状态目录、包管理器缓存、/tmp沙箱内是私有 tmpfs代理写不进去的东西宿主也看不到网络出站全开放allowedDomains [*]这是刻意为之——代码开发离不开网络Fence 靠文件和命令策略兜底而不是把网络掐死2️⃣ 命令边界——允许/拒绝二选一没有询问模式拒绝sudo、systemctl poweroff、nixos-rebuild switch、git reset/git clean、gh api原始接口、npm publish等允许git config的只读子命令、gh release download、gh-review-reply只回复评审评论这一个写操作等策略文件本身是独立的、可审查的 Nix 代码改一条规则就是改一行配置home-manager switch生效。容易被忽略的细节设计Fence 在 nix-config 里还有几个很工程化的贴心设计Wayland 剪贴板桥接wayland-bridge.nix每次启动创建一个私有运行时目录只挂一个指向 Wayland 套接字的符号链接——代理能粘贴图片却看不到会话总线的其他东西Chromium 私有档案浏览器在/tmp下用独立的--user-data-dir运行崩溃报告和配置写入都不污染真实主目录Git 配置只读挂载Fence 自动把仓库的.git/config和 hooks 以只读方式挂载代理无法篡改远程地址、凭证助手或钩子配套把push.default设为currentgit.nix裸git push依然好用✍️无长密钥签名工作仓库通过 gitsign 十分钟过期的临时证书签名沙箱里根本没有 SSH 密钥可偷每次启动一份审计日志每个-fenced调用都会生成独立日志logging.nix目录权限0700、文件060014 天后自动清理。用 fence-log 助手随时翻看fence-log claude # 分页查看当前 Claude 会话日志 fence-log codex tail # 实时跟随 Codex 日志 fence-log opencode list # 按时间列出历史日志配合fence config show你可以随时验证沙箱里看得见什么、能跑什么。关键文件速查Fence 总策略与 READMEhome-manager/_mixins/agentic/fence/default.nix、home-manager/_mixins/agentic/fence/README.mdWayland 桥接home-manager/_mixins/agentic/fence/wayland-bridge.nixGit 策略home-manager/_mixins/agentic/fence/git.nix日志助手home-manager/scripts/fence-log/各代理的 fenced 入口声明home-manager/_mixins/agentic/claude-code/、codex/、opencode/、pi/小结Fence 给AI 代理自主性和系统安全之间找到了一个务实的平衡点代理侧全放开沙箱侧全收紧中间留一份可随时审查的策略和逐次启动的审计日志。如果你的工作流里跑着 Claude Code 或 Codex这套来自 nix-config 的声明式沙箱策略值得当作让 AI 放手干活的参考范本。【免费下载链接】nix-configWimpys NixOS, nix-darwin Home Manager Configurations ❄️项目地址: https://gitcode.com/gh_mirrors/nixco/nix-config创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表