更新时间:2026-05-29 GMT+08:00
分享

沙箱

沙箱(Sandbox)为智能体生成的指令提供隔离且受限的执行空间。通过严格的权限管控,确保命令在安全隔离的环境内运行,有效阻断对未经授权资源(文件、网络等)的访问或者高风险命令(权限修改等)。对于被拦截的命令,智能体会在对话流中发出风险提示,经由用户二次确认后,命令才会在沙箱外被执行。

约束与限制

表1 约束与操作限制

限制类别

具体说明

操作系统

  • Windows操作系统:推荐使用Windows 11 (x64);如果使用Windows 10 (x64),系统版本需为2019年及以上,建议升级至最新稳定版本。
  • macOS操作系统:macOS 11及以上版本,兼容ARM64(Apple Silicon)架构。

管控对象

  • Windows:只管控Bash命令和PowerShell命令。
  • macOS:只管控Shell命令。

文件访问控制

启用沙箱后,码道CLI对文件目录的访问权限配置如下:

表2 文件访问控制

操作系统

权限类型

目录类型

目录列表

Windows

只读

-

Windows系统关键目录用户敏感目录外,其余所有目录均开放读权限。

读写

项目目录及其子目录

-

不可读不可写

Windows系统关键目录

  • C:\Windows\System32\config
  • C:\Windows\System32\drivers\etc
  • C:\Windows\SysWOW64\config
  • C:\ProgramData\Microsoft\Crypto
  • C:\Windows\System32\GroupPolicy
  • C:\Windows\System32\GroupPolicyUsers
  • C:\ProgramData\Microsoft\Windows\WER

用户敏感目录

  • C:\Users\*\AppData\Local\Microsoft\Credentials
  • C:\Users\*\AppData\Roaming\Microsoft\Credentials
  • C:\Users\*\AppData\Local\Microsoft\Protect
  • C:\Users\*\NTUSER.DAT
  • C:\Users\*\ntuser.dat.LOG

macOS

只读

-

系统敏感目录外,其余所有目录均开放读权限。

读写

工作空间和额外设置的读写目录

  • 临时目录:/tmp、/var/folders、TMPDIR环境变量路径
  • 缓存目录:~/Library/Caches、~/.cache
  • 通用工具依赖目录:~/.local/lib、~/.local/bin、~/local/share
  • 常用开发语言((Go、JAVA、Python、Node.js、Rust、Ruby)的工具链及其依赖目录

不可读不可写

文档/桌面/下载(隐私)

  • ~/Desktop
  • ~/Documents
  • ~/Downloads
  • ~/Pictures
  • ~/Movies
  • ~/.ssh
  • ~/.zsh_history

密码/钱包/钥匙链相关

~/Library/Keychains

系统级敏感配置

  • /etc/passwd
  • /private/etc/passwd
  • /etc/group
  • /private/etc/group
  • /etc/hosts
  • /private/etc/hosts
  • /etc/resolv.conf
  • /private/etc/resolv.conf
  • /etc/pam.d
  • /private/etc/pam.d

沙箱调用示例

默认开启沙箱,在执行风险命令时默认启用拦截。TUI开发会弹框是否被拦截,CLI开发模式直接被拦截。

如下图所示,在TUI开发模式下,执行高危命令“net user”时被拦截。

图1 高危命令被拦截示例

请评估风险后,按需选择执行方式。

  • Allow once,仅允许本次执行,下次遇到相同命令会再次询问。
  • Allow always,本次会话中,此类命令将不再询问,直接执行。
  • Reject,不执行此命令,继续对话。适合您认为有风险或不必要的操作。

如果需要关闭沙箱功能,请参考关闭沙箱模式

关闭沙箱模式

码道CLI支持的运行模式如表3

表3 配置项

参数

说明

sandbox

沙箱运行:默认严格限制,支持用户自定义命令与网络白名单

always_allow

自动运行:全自动执行,完全不受限制

always_ask

手动运行:遵循默认规则,非默认操作需手动确认

whitelist

白名单运行:白名单内自动放行,其余操作需确认

如果您想要关闭沙箱模式,请进到下述路径做修改:

进入“~/.codeartsdoer/cli-data/storage/permission/”路径,修改“config.json”文件。“~”表示当前用户的主目录,Windows下等同于“C:\Users\用户名\”,macOS下等同于“/Users/用户名/”

如下图所示,修改策略为自动运行。

图2 修改策略为自动运行

相关文档