Skip to content

[Grok/dsh 12] 进程、网络与环境保护 #144

Closed

Description

@Blackman99

Parent

#132

Ticket: 12

Status: ready-for-agent

User Stories: 26, 27, 62(见父规格)

What to build

用户选择安全执行配置后,子进程网络和环境变量按声明受限,取消与退出会清理受管理进程树。

Acceptance criteria

  • 核实并实现整进程与逐工具策略的组合,明确各平台网络限制差异,不把 dsh 文件模式当成网络沙箱。
  • 环境过滤对启动环境及支持的 shell 路径有效;测试凭据不泄漏到不获授权的命令。
  • 进程创建、终止、终端断连及沙箱启动失败有真实效果测试;无法兑现保护时拒绝,不静默降级。
  • 记录上游缺口和已验证平台;相关发布元数据、用户限制说明与回归测试齐备。

Blocked by

Delivery contract

用户于2026-09-20批准当前测试与任务拆分。按父规格的已安装产物/真实终端和公开协议测试验收;实际实现须带适用的文档、Changeset及必要检查。ready-for-agent表示任务已定义,不表示前置任务已完成,也不授权自动开始本轮实施、购买付费资源或发布软件版本。

Activity

  1. Blackman99 commented on Sep 24, 2026

    @Blackman99
    OwnerAuthor

    Ticket 12 / #144 已合入 rewrite/grok-dsh-20260920 的 590f9bf。

    restrict_network 在现有 macOS Seatbelt 配置里追加 (deny network*)。拒绝时连到 127.0.0.1 得到 EPERM,未拒绝时可以连上。请求了网络隔离但当前平台无法施加时,启动拒绝,不降级。Linux 与 Windows 不记为已支持。

    shell_environment_policy 过滤本客户端拉起的 shell 子进程环境。探测用的凭据在排除时不会出现在 sh -c env 里,列入 include_only 时会出现。dsh 自己的 bash 工具继承 dsh 进程,第二层 Seatbelt 不能嵌套,所以这条路径没有再过滤,文档写明了。取消会杀掉探测进程组。无法表达的策略在写出沙箱报告之前拒绝。

    验证:合并后的 scripts/rust-network-env-sandbox-test.py 通过。cargo fmt --check、cargo clippy -D warnings、cargo test --locked --workspace(451 + 498 + 42 + 61 + 2 + 379)通过。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions