2026 OpenCode 2.0 多人共用 Mac 会串项目吗?

2026 OpenCode 2.0 多人共用 Mac 会串项目吗?

OpenCode V2 官方文档说明:默认共享后台服务为当前用户账号管理会话、配置、集成、权限和工具执行。因此,OpenCode 2.0 多人共用 Mac 不能把“各自打开客户端”当成隔离证明;未验证账号、目录、凭证和服务访问边界前,不要让多人通过同一个 macOS 用户会话处理不同课题组项目。(OpenCode V2 CLI 文档)

谁该看:课题组负责人,正在决定多人是否共用一台 Mac 运行 OpenCode 2.0。
实验室管理员,需要审查账号、服务和项目目录边界。
研究软件开发者,准备从个人环境迁移到团队可访问的 Mac 环境。

最后更新于 2026 年 11 月 3 日;我们复核了 OpenCode V2 CLI、权限、远程服务文档及官方版本变更记录。官方变更记录列有 2026 年 10 月 30 日发布的 V2 版本更新;部署前仍应核对机器上实际安装的版本及对应文档。

OpenCode 2.0 多人共用 Mac:后台服务不提供隔离证明

先把“共用”拆成三种情况。风险不取决于几个人坐在同一台机器前,而取决于他们是否共用同一个操作系统身份或服务实例。

  • 多人轮流登录同一个 macOS 用户:OpenCode 服务、用户目录、可访问文件和该账号拥有的凭证可能落在同一权限范围内。不能把客户端窗口分开当成系统隔离。
  • 多人各用独立 macOS 账号:系统账号和主目录可以分开管理,但还要检查共享文件夹、账号权限、远程服务连接目标,以及是否有人共用同一服务凭证。
  • 多人连接同一个 OpenCode 服务:客户端连到同一服务时,必须确认该服务实际管理的会话、配置与工具执行范围。不同客户端本身不能证明各自拥有独立服务状态。

官方文档把默认共享后台服务描述为当前用户账号使用的服务,并提供 --standalone 启动私有服务、--server 连接指定服务等方式。这能说明服务如何选择,不能据此推断多人共用同一 macOS 账号时可以互相隔离。

共享后台服务会管理哪些会话与配置?

OpenCode 共享后台服务管理会话、配置、集成、权限和工具执行;客户端只是连接到服务的入口。对于科研 Mac 多用户隔离,管理员至少要分别确认:当前登录的 macOS 用户是谁、客户端连接到哪个服务、会话列表属于谁、OpenCode 配置文件由谁读取。

我们建议在测试记录中保存以下结果,而不是凭桌面窗口或账号显示名作判断:

  • 终端执行 whoami、echo "$HOME",记录系统用户名与主目录。
  • 执行 opencode service status,确认服务状态和实际连接地址。
  • 分别启动正常模式、opencode --standalone,比较看到的会话和设置;不要在含敏感数据的项目里做首次验证。
  • 用 opencode debug paths 查看 OpenCode 配置、数据库等路径,再确认这些文件由哪个系统用户拥有、谁有读写权限。

OpenCode 官方配置文档描述了配置与权限规则的设置方式;不同版本的配置结构可能不同,尤其不要把旧版本的配置键直接复制到 V2。发布前请对照当前 V2 配置说明。

多人共用 Mac 跑 OpenCode,会看到彼此项目吗?

有可能,但不能仅凭共用一台物理 Mac 或使用不同客户端得出结论。会话管理和文件系统权限是不同层面:服务会管理会话;工具执行则可能读取或修改服务所在机器上、当前用户能够访问的文件。OpenCode V2 权限文档明确提醒,Shell 命令使用主机用户的文件系统、进程和网络权限(权限说明)。

项目目录选错、多个课题组共用一个工作副本、不同会话指向相同路径,都会增加改动交叉的可能。Git 分支也不等于访问控制:多个工作树能让同一仓库并行检出不同分支,但仍共享仓库中的部分数据与管理信息。Git 官方 git worktree 说明也列出了不同工作树共用仓库数据的边界。

在测试仓库里按下面步骤验收,再决定能否处理真实课题代码:

  1. 创建不含真实数据、密钥或个人信息的临时仓库。
  2. 为两个测试用户分别登录,记录各自的账号、主目录和服务连接地址。
  3. 在各自终端中启动 OpenCode,确认工作路径;不要只看会话标题。
  4. 在一个测试项目里创建标记文件,再检查另一个账号是否能列出、读取或修改它。
  5. 分别创建分支或工作树,检查会话实际工作目录、Git 状态和文件变化位置。
  6. 退出客户端后重新登录,复查会话列表与最近使用路径;把结果和安装版本一并记录。

如果任一用户能读取不该接触的目录,或两边的修改落入同一工作副本,就先停止真实项目验证。改用独立系统账号、单独目录,并重新确认 OpenCode 连接到的服务实例。

权限和凭证必须落到操作系统边界

OpenCode 的 ask、allow、deny 等规则控制工具能否执行某项操作,但它们不等同于 macOS 的用户隔离。权限配置过宽、Shell 命令执行范围过大,或多个人共用一个账号下的环境变量,都可能让项目密钥和提供商凭证落入共同的可访问范围。

按以下顺序审查,避免只检查应用内的权限弹窗:

  • 检查 opencode.json、opencode.jsonc 和全局配置里的 Shell、读取、编辑及外部目录规则。特别确认是否存在过宽的通配规则。
  • 在测试环境中确认拒绝规则生效,并检查是否有更高优先级或后续规则改变了结果。V2 文档说明规则按顺序组合,最后匹配的规则会影响结果。
  • 检查启动服务时继承的环境变量、终端配置、SSH 密钥,以及模型或提供商凭证的存放方式;不要把真实密钥放进共享仓库或通用脚本。
  • 在 macOS 系统设置中为不同使用者建立独立账号,并确认不是所有人都拥有管理员权限。Apple 的新增 Mac 用户说明列出管理员、标准和仅共享等账号类型;文件共享说明也指出管理员账号可能访问整台 Mac。
  • 检查研究数据目录和密钥文件的权限。macOS 的文件与文件夹权限说明区分可读、可写和无权访问;共享目录不能仅因“账号不同”就被视为隔离。

如果成员必须共用同一系统账号,至少应把凭证、项目目录和服务访问做独立边界验证;做不到时,不要把 OpenCode 应用权限当成补偿控制。

OpenCode 2.0 远程服务如何限制访问?

先辨认连接属于本机、局域网还是外网。OpenCode V2 远程服务文档说明,默认监听本机地址;允许远程连接则需要明确启用(远程服务说明)。配置监听到所有网络接口、开放来源或建立外网访问,会扩大服务暴露面,因此不能把“设置了密码”直接等同于已通过机构安全审查。

有几个可核验的参数,适合直接纳入运维记录:

  • 配对链接只能使用一次,有效期为 5 分钟。
  • 配对后的会话可持续 30 天;更改服务密码会使已有会话退出。
  • 官方文档列出的 macOS 默认服务端口是 49374;实际地址应通过 opencode service status 核对,而不是从旧记录复制。

按这份检查清单做远程连接验收:

  • [ ] 记录服务监听地址、端口、客户端目标地址和实际登录用户。
  • [ ] 确认是否启用了远程服务、全接口监听或额外跨域来源;未审批的配置保持关闭。
  • [ ] 使用测试账号验证未授权设备无法连接,并确认密码没有写入仓库、公开日志或共享脚本。
  • [ ] 从外部网络检查真实访问路径;若使用 SSH 转发,验证连接只经过预期通道。
  • [ ] 明确谁能创建配对、谁保管服务密码,以及退出成员访问时如何撤销连接。

官方说明可帮助核对服务设置,却不能代替课题组对数据分类、网络访问和机构审批要求的判断。具体版本的行为也应根据实际安装版本及官方发布记录复核。

两张表,确定团队环境的隔离级别

使用方式 能确认的边界 主要残余风险 建议
多人轮流用同一个 macOS 账号 账号身份与主目录相同 会话、配置、凭证与文件权限可能重叠 不用于不同课题组的敏感项目,除非已逐项验证并获准
独立 macOS 账号、各自启动服务 系统用户可区分;需确认文件和服务配置 共享目录、管理员权限或共用服务凭证仍可能造成交叉 先做双账号读写与会话验收
多人连接同一个 OpenCode 服务 客户端连接目标相同 服务管理的会话和工具执行范围可能被共享 只在确认服务端隔离策略后使用
各自使用独立主机或环境 主机与账号边界更清晰 数据传输、密钥、机构规则仍需管理 对敏感或相互独立的课题组优先评估
验收项 通过条件 未通过时的回退动作
系统账号 每人身份可识别,非必要人员无管理员权限 拆分账号并收紧权限
服务目标 能明确证明每个用户连接到哪个 OpenCode 服务 停用共享连接,改用独立服务
项目目录 测试用户无法读写不属于自己的项目 拆目录、重设权限或隔离主机
凭证与命令 密钥不在共用环境中裸露,敏感命令有审查边界 撤销共享凭证并改用独立密钥
远程访问 监听范围、认证、来源和撤销方式均有记录 关闭远程访问,完成审批后再启用

课题组应该共用账号还是拆分账号?

按下面的条件分支决定,不要把“一台 Mac”当成唯一选项:

  • 若只有一名使用者,且项目与凭证均归该用户管理:可先验证 OpenCode 默认服务和本机目录,再投入真实工作。
  • 若多人共用主机,但账号、会话、目录和凭证都能分别验证:可以评估独立 macOS 账号与各自服务;在测试读写边界通过前,不纳入真实数据。
  • 若多人需要连接同一个 OpenCode 服务:只有在确认会话可见范围、权限规则、服务密码管理及退出访问流程后,才考虑共享服务。
  • 若不能证明项目或凭证边界,或数据规则不允许共用:回退到独立账号、独立服务,必要时使用独立主机环境。远程 macOS 课题组环境只是部署方式,不自动提供隔离或合规保证。

需要检查远程主机接入时,可先参考我们的SSH 与 VNC 连接说明。如果课题组确认需要一台可交互的远程 Mac,再核对远程 Mac 的交付方式及可选租用方案。这适合临时测试 macOS 专属软件或补充实验室缺少的 Mac 环境;但共享的 Linux 或 Windows 远程主机不能替代原生 macOS 验证,而租用一台主机也不会自动解决多人账号、凭证和数据隔离问题。若团队长期持续重负载,或依赖本地物理接口,优先评估自有 Mac;若只是短期需要可交互的 macOS 测试环境,再把远程租赁纳入比较。

给每个项目一台独享 Mac,减少多人共用的混乱

通过 MetalVNC 租用独享物理 Mac,让团队在独立环境中运行构建与测试,降低项目文件和工具配置互相干扰的风险。

下一步,确认你的运行环境

先比较配置,再选择接入方式。SSH 命令行与 VNC 桌面可分别用于构建和交互调试。