安全性

受信任的資料夾

透過受信任的資料夾安全性,控制哪些專案可以使用 Bob Shell 的完整功能。

受信任的資料夾

受信任的資料夾讓你可以控制哪些專案可以與 Bob Shell 搭配使用。你必須核准一個資料夾,Bob Shell 才會載入任何專案特定的設定,以保護你免受潛在惡意程式碼的侵害。

注意:

受信任資料夾功能預設為停用。若要啟用,請開啟 /settings 選單,並將 Folder Trust 設為 true。變更必須重新啟動後才會生效。

受信任的資料夾的運作方式

當你第一次從某個資料夾執行 Bob Shell 時,會自動彈出信任對話方塊,提示你做出選擇:

  • 信任資料夾:授予目前資料夾完全信任(例如 my-project
  • 信任父資料夾:授予父目錄(例如 safe-projects)信任,這將自動信任其所有子目錄。如果你將所有安全專案儲存在同一個位置,請使用此選項
  • 不信任:將資料夾標記為不受信任。Bob Shell 在受限安全模式下執行

你的選擇將儲存在 ~/.bob/trustedFolders.json 中,因此每個資料夾只需選擇一次。

不受信任的資料夾的影響

當資料夾不受信任時,Bob Shell 會在受限安全模式下執行。以下功能會被停用或忽略:

功能安全模式下的行為
專案設定不會載入 .bob/settings.json。自訂工具和可能有風險的設定會被封鎖。
工具自動核准即使你已全域啟用自動核准,在任何工具執行之前也會始終提示你進行確認。
MCP 伺服器Bob Shell 不會嘗試連線至任何 MCP 伺服器。
自訂模式在專案資料夾中定義的模式無法使用。你只能使用內建模式和全域定義的模式。
Skills專案隨附的 skills 不會被載入。只有全域可用的 skills 和內建能力會保持啟用。
Subagents專案資料夾中的自訂 subagents 無法使用。代理無法將工作委派給專案提供的輔助代理。
專案指示不會讀取 AGENTS.md 之類的指引檔案和自訂專案規則。代理會在沒有專案自訂指示的情況下運作。

授予資料夾信任將為該工作區解鎖 Bob Shell 的完整功能。

管理信任設定

信任如何判定
Bob Shell 會檢查 ~/.bob/trustedFolders.json,查看目前資料夾是否已有既有的信任決定。
變更目前資料夾的信任
在 Bob Shell 中執行 /permissions 斜線指令。彈出互動式對話方塊,讓你變更目前資料夾的信任層級。
檢視所有信任規則
檢查主目錄中的 ~/.bob/trustedFolders.json,即可查看所有受信任與不受信任資料夾規則的完整清單。

非互動式工作階段

與互動模式不同,非互動式工作階段從不顯示信任對話方塊。Bob Shell 根據預先存在的信任決定靜默執行。

當此功能已啟用且資料夾沒有信任決定,或資料夾被標記為不受信任時,Bob Shell 會拋出錯誤並拒絕執行:

<folder> is not a trusted folder. Pass --trust to run in this folder,
or run Bob Shell interactively and choose a trust level.

不同模式下的 flag 行為

--trust--auto-approve flag 的行為會依 Bob Shell 的啟動方式而不同。選擇你的模式以查看對應工作階段中的行為:

--trust
該資料夾會被持久儲存為受信任。Bob Shell 會將目前目錄的受信任項目寫入 ~/.bob/trustedFolders.json,並跳過首次存取時的信任對話方塊。這等同於開啟資料夾後手動選擇「信任資料夾」。
--auto-approve
在不受信任的資料夾中,自動核准會被靜默抑制。你仍然會在每次工具執行前收到確認提示。
--trust
該資料夾只會在本次執行中被視為受信任。這個信任決定不會被持久儲存,也不會向信任儲存寫入任何內容。

自動化的預先設定

對於安全自動化和 CI/CD 管線,在執行非互動式指令之前建立信任決定:

  1. 首先執行互動式工作階段,透過對話方塊設定信任偏好。
  2. 手動設定 ~/.bob/trustedFolders.json

在沒有任何決定時,Bob Shell 不會回退到受信任狀態,因此在安全敏感的環境中,預先設定信任至關重要。

最佳實踐

  • 僅信任包含你自己已審查或建立的程式碼的資料夾
  • 對包含多個安全專案的目錄使用「信任父資料夾」選項
  • 定期審查 ~/.bob/trustedFolders.json 中的受信任資料夾清單
  • 在處理不熟悉的程式碼時,先在不受信任模式下執行以了解專案,再授予信任
這個主題如何?