沙箱與檔案保護
LanMate 執行命令同寫檔案時,預設行喺受限環境入面:系統級沙箱隔離命令執行,檔案保護限制可寫入嘅範圍。兩層獨立生效,日常使用唔使設定。
系統沙箱
沙箱用嘅係作業系統原生隔離機制,按平台自動揀:
| 系統 | 後端 | 說明 |
|---|---|---|
| macOS | Seatbelt(sandbox-exec) |
系統內置,唔使裝 |
| Linux | Landlock 優先,bubblewrap 後備 | Landlock 核心 native;兩個都用唔到時見下面「沙箱唔可用時」 |
| Windows | 低完整性程序 | 系統內置,唔使裝 |
| HarmonyOS | 系統應用沙箱 | 作業系統強制執行,固定淨係工作目錄,呢個設定改唔到 |
Agent 執行嘅命令(bash、script、核心程序)都喺沙箱入面行,冇得越界寫檔案;內置辦公 script 同連接器程序係例外,見「覆蓋範圍」。
檔案保護範圍
設定 → 安全 → 檔案保護,兩個檔位:
| 檔位 | 行為 |
|---|---|
| 淨係工作目錄(預設) | 用系統沙箱限制可寫範圍;寫工作目錄以外嘅檔案時彈窗問你,批准咗就放行 |
| 唔限制 | 閂咗檔案保護,乜都寫得,齋受審批級別約束 |
「淨係工作目錄」之下,Agent 寫得嘅範圍:
| 權限 | 範圍 |
|---|---|
| 讀寫 | 而家個項目嘅工作目錄 |
| 讀寫 | 系統臨時目錄(macOS /tmp、TMPDIR;Windows %TEMP%;Linux /tmp) |
| 讀寫 | 而家個會話嘅產物目錄(報告、圖表呢啲中間檔案) |
| 唔寫得 | 以上以外嘅任何路徑,第一次寫入時彈授權卡 |
越界寫入嘅授權係會話級:批准一次之後,呢個會話再寫同一個路徑唔使再問,新會話要重新確認。成日要寫嘅目錄(例如固定嘅輸出 folder)可以加入常駐可寫目錄(設定 → 安全 → 常駐可寫目錄),加入之後所有會話都直接寫得。
提示:內置辦公 script(Word/Excel/PPT/PDF/圖片處理)同連接器程序唔行系統沙箱,但讀寫仍然受工作目錄同授權規則約束,每次執行都有審計日誌。
沙箱唔可用時
Linux 上面 Landlock 同 bubblewrap 都用唔到(或者 user namespace 被停用)時,LanMate 唔會扮安全:命令用普通權限行,但三層提示確保你知道而家咩環境——
- 啟動時右下角彈提示
- 設定 → 安全 有常駐警告同補救指引(例如裝 bubblewrap)
- 每個會話第一次執行命令之前再確認一次
審批攔截唔受影響,照樣生效。重新開 app 或者修好系統配置之後有機會恢復。
其他安全設定
| 設定 | 位置 | 說明 |
|---|---|---|
| 沙箱內禁止聯網 | 設定 → 安全 | Linux 沙箱內斷網(預設開);核心入面裝 dependency 要上網時可以閂 |
| LanMate 依賴項 | 設定 → 安全 | Dependency 裝入內置 runtime(預設開);閂咗之後安裝行系統環境,指住內置環境嘅命令會被攔 |
| 刪除移入回收站 | 設定 → 安全 | 確認刪除之後檔案入回收站而唔係徹底刪,搵得返 |
| 限制渠道發送檔案路徑 | 設定 → 安全 | 開咗之後藍信呢啲渠道會話淨係准發工作目錄入面嘅檔案,防止資料外洩 |
執行策略規則
設定 → 安全 → 執行策略規則,按工具、路徑同命令自訂放行策略:
- 每條規則:工具名(精確匹配)+ 匹配條件(路徑 prefix / 命令包含)→ 決策(允許 / 拒絕 / 詢問)
- 規則由上至下匹配,第一條中生效;冇中就行預設決策
例子:bash 工具 + 命令包含 git push → 詢問,放行日常操作嘅同時對 push 留一道人工確認。
安全底線:敏感路徑(
~/.ssh、~/.aws、/etc呢啲)同破壞性命令(好似rm -rf /)永遠拒絕,咩規則都冇得覆蓋。
企業審計
組織開咗之後,審批決策同高危工具呼叫會上報企業服務端審計日誌:命令文字經 key 脫敏之後先上報,斷網自動補發。完整本地軌跡留喺 ~/.lanmate/agent/sessions/<會話id>.jsonl,可以做企業取证。
同審批嘅關係
沙箱管「掂得邊度」,審批管「使唔使問你」。兩樣獨立夾——例如「淨係工作目錄 + 只讀放行」之下,讀檔案直接行、寫檔案彈窗、寫工作目錄以外嘅檔案先過沙箱授權再過審批。詳見審批與安全。