安全

受信任的文件夹

通过受信任的文件夹安全性,控制哪些项目可以使用 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 中的受信任文件夹列表
  • 在处理不熟悉的代码时,先在不受信任模式下运行以了解项目,再授予信任
这个主题怎么样?