安全
受信任的文件夹
通过受信任的文件夹安全性,控制哪些项目可以使用 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 流水线,在运行非交互式命令之前建立信任决定:
- 首先运行交互式会话,通过对话框设置信任首选项。
- 手动配置
~/.bob/trustedFolders.json。
在没有任何决定时,Bob Shell 不会回退到受信任状态,因此在安全敏感的环境中,预配置信任至关重要。
最佳实践
- 仅信任包含你自己已审查或创建的代码的文件夹
- 对包含多个安全项目的目录使用“信任父文件夹”选项
- 定期审查
~/.bob/trustedFolders.json中的受信任文件夹列表 - 在处理不熟悉的代码时,先在不受信任模式下运行以了解项目,再授予信任
这个主题怎么样?