跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

沙箱平台与诊断

核实 macOS 与 Linux 前提,处理 AppArmor 和 Linux 用户命名空间身份。

沙箱可用性取决于平台。无法建立沙箱时,应检查内核、用户命名空间和平台错误,不要把命令失败直接解释为项目代码错误。

macOS 与 Linux

macOS 使用 Seatbelt 和 sandbox-exec,生成的 profile 约束整个子进程树;官方要求 Cursor 2.0 或以上,无需额外安装。

Linux 使用 Landlock 限制文件系统、seccomp 限制系统调用。需要内核 6.2 或以上、Landlock v3(CONFIG_SECURITY_LANDLOCK=y)以及非特权用户命名空间。达不到要求时,Cursor 回退为执行前请求批准。

AppArmor 错误

本地桌面安装包带有所需 profile;远程环境与独立 CLI 可能没有。若错误明确指向用户命名空间权限,可按发行版安装官方提供的 cursor-sandbox-apparmor 包,再重启 Cursor 或 CLI 会话。具体包版本和下载命令以官方 Run Modes 页为准。

检查进程环境

变量含义
CURSOR_SANDBOXmacOS 为 seatbelt,Linux 为 native
CURSOR_ORIG_UID启动 Cursor 的宿主用户 UID
CURSOR_ORIG_GID启动 Cursor 的宿主用户 GID
CURSOR_SANDBOX_LANDLOCK_STATUSLinux 后端:fully_enforced 或 bubblewrap

Linux 沙箱的 user namespace 内进程可能映射为 UID 0,因此 id -u 或 $UID 不等于宿主身份,也不代表获得宿主 root 权限。需要给容器传宿主 UID/GID 时使用 CURSOR_ORIG_UID 和 CURSOR_ORIG_GID。

按故障范围排查

文件被拒绝时检查读取边界和沙箱路径;网络失败检查网络模式与域规则;沙箱创建失败检查平台前提。保留真实错误和后端状态,再判断是否需要增加权限。