跳到正文
发现
命令行工具开发者工具

landstrip:编码代理的 OS 级沙箱

用策略文件限制编码代理的文件读写和网络访问,并基于操作系统原生沙箱机制隔离运行命令。

admin
发布于 2026-10-28 · 更新于 2026-11-02
浏览
4
访问
0
下载
0
版本
v0.20.17
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

landstrip 是一个用 Rust 编写的沙箱工具,它在操作系统层面运行命令:Linux 上使用 Landlock,macOS 上使用 Seatbelt,Windows 上使用 AppContainer。它面向需要让编码代理执行命令、但又希望限制其权限的开发者。

主要功能

  • 通过 policy.json 策略文件声明文件系统与网络权限。
  • 文件系统规则支持 allowWrite、denyWrite、denyRead、allowRead,可用 glob 模式匹配路径。
  • 网络规则支持 allowNetwork、allowLocalBinding 开关。
  • check 命令用于校验策略,doctor 命令用于检查运行环境。
  • 提供 Node.js API、OpenCode 插件与 Pi 扩展等配套包。

安装与使用

npm install --save-dev @landstrip/landstrip

示例 policy.json:

{
  "filesystem": {
    "allowWrite": ["."],
    "denyWrite": ["**/.env", "**/*.pem"],
    "denyRead": ["~/.ssh"],
    "allowRead": ["~/.ssh/config"]
  },
  "network": {
    "allowNetwork": false,
    "allowLocalBinding": false
  }
}

运行与检查:

npx landstrip run -p policy.json -- cargo test
npx landstrip check -p policy.json
npx landstrip doctor

注意事项

  • 在 Windows 上,除了上述策略外,还需要为可执行文件及其依赖显式授予读取权限。
  • 各平台支持的规则与限制并不完全一致,具体细节请参见仓库中的 landstrip(1) 手册页。
  • 仓库包含多个包:packages/landstrip 是二进制,packages/landstrip-api 是 Node.js API,packages/opencode-landstrip 是 OpenCode 插件,packages/pi-landstrip 是 Pi 扩展。

本作品整理自 GitHub 开源项目 landstrip/landstrip,原作者 @landstrip。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v0.20.17当前版本

    landstrip 0.20.17

  2. v0.20.16

    landstrip 0.20.16

  3. v0.20.15

    重构策略解析:更具体的 allowWrite 可覆盖 denyWrite,支持 soft denyWrite 的提示与覆盖;将 glob 引擎、路径处理、deny 匹配拆分为独立模块;移除 API 的位置参数与配置对象重载;更新 npm 包完整性元数据。

评论