发现
命令行工具开发者工具
landstrip:编码代理的 OS 级沙箱
用策略文件限制编码代理的文件读写和网络访问,并基于操作系统原生沙箱机制隔离运行命令。
- 浏览
- 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 整理,以原仓库为准。
更新记录
- v0.20.17当前版本
landstrip 0.20.17
- v0.20.16
landstrip 0.20.16
- v0.20.15
重构策略解析:更具体的 allowWrite 可覆盖 denyWrite,支持 soft denyWrite 的提示与覆盖;将 glob 引擎、路径处理、deny 匹配拆分为独立模块;移除 API 的位置参数与配置对象重载;更新 npm 包完整性元数据。
评论