← 返回首頁

just-bash 是由 Vercel Labs 開發的模擬 bash 環境

Malte Ubl
Malte Ubl
@cramforce
479🔁 29
𝕏 (Twitter)🔥
AI 中文摘要Claude 生成

just-bash 是由 Vercel Labs 開發的模擬 bash 環境,現在新增了可選的 JavaScript 和 TypeScript 執行支援。這個工具用 TypeScript 編寫,專為需要安全沙箱 bash 環境的 AI Agent 設計。

核心特性 核心特性上,just-bash 提供完整的虛擬檔案系統存取,如果啟用則支援透過 fetch 進行網路存取,並可執行子殼層如 CLI。JavaScript 支援涵蓋大多數常見的 fs 和 child_process 等 Node.js 模組。

安全模型設計 安全模型方面,該工具採取預設安全策略:

  • 殼層只能存取提供的檔案系統
  • 執行受到無限迴圈和遞迴保護
  • 預設情況下無法存取網路
  • Python 和 JavaScript 執行也預設關閉,因為可能擴大安全風險
  • 網路存取啟用時,會檢查 URL 前綴和 HTTP 方法允許清單

作者坦言 Bash 對於 DOS 攻擊的健全性仍不完全。

JavaScript 執行 JavaScript 執行功能基於 QuickJS(WASM 沙箱),需明確啟用。支援 ES 模組模式及 import,並提供 Node.js 相容性,包括 fs、path、child_process、process 等常用模組。可設定 bootstrap 程式碼在每次 js-exec 執行前運行,用於注入 polyfills 或全域工具。執行限制為 64 MB 記憶,預設 10 秒逾時(啟用網路時 60 秒)。

檔案系統實作 檔案系統支援多種實作方式:

  • InMemoryFs:純記憶檔案系統
  • OverlayFs:採寫入時複製,讀取來自磁碟但寫入留在記憶
  • ReadWriteFs:直接讀寫真實目錄
  • MountableFs:可在不同路徑掛載多個檔案系統

使用者可組合多個檔案系統建立統一命名空間,例如掛載只讀知識庫和可寫工作區。

命令支援範圍 命令支援範圍廣泛,包括:

  • 檔案操作(cat、cp、ls 等)
  • 文字處理(grep、sed、awk 等)
  • 資料處理(jq、yq、sqlite3、xan)
  • 壓縮歸檔(gzip、tar)
  • 網路命令(curl、html-to-markdown)

shell 功能支援管道、重導向、命令鏈、變數、位置參數、全域擴展、if 陳述式、函式、迴圈和符號連結。

網路存取控制 網路存取預設禁用,啟用時需配置允許的 URL 前綴和 HTTP 方法。允許清單強制執行原始位址匹配、路徑前綴、HTTP 方法限制和重導向保護。

執行保護限制 執行保護設有可配置的限制,包括最大函式遞迴深度、總命令數、迴圈反覆次數及 awk/sed 反覆次數,所有限制均有合理預設值。

AST 轉換外掛 該工具提供 AST 轉換外掛管道,可在執行前解析、轉換和序列化 bash 指令稿,適用於檢測(如捕捉每個命令的標準輸出/標準錯誤)或分析(如提取命令名稱)場景。

測試版警示 值得注意的是,這是測試版軟體。開發團隊明確要求使用者自行承擔風險並提供回饋。對於需要完整虛擬機功能(如執行 node、python 或自訂二進位檔案)的情況,建議改用 Vercel Sandbox。