部门域:卷、组与用户

前两页讲了一名数字员工是一个目录、目录住在哪里。这一页讲「不同部门怎么分开」:磁盘怎么分区、身份怎么隔离、组织的五层怎样一一落到机器上,以及给一个新部门开区域要做哪几步。答案只有一句:公司登记在中枢,部门是一块卷加一个根目录,数字员工是根目录下的一个目录;边界由操作系统的组与用户承担。

// 一句话理解

一个部门 = 一块独立的卷 + 一个根目录 + 一个操作系统组;一名数字员工 = 根目录下的一个目录 + 一个操作系统用户。目录权限位直接就是组织边界,不靠软件层的承诺。

三层标准与各自的真源

这套布局不发明新结构,只是把运行时已有的「根目录 / 数字员工目录」两层,和 AIDC 中枢的登记对上号。每一层都有明确的真源与权限载体:

真源在哪磁盘上权限载体
公司 / 集团中枢:岗位登记、策略、技能注册表无对应目录中枢登记与策略下发
部门中枢登记 + 机器上的一块卷一块卷挂载点下的根目录一个操作系统组
数字员工中枢登记 + 目录本体<根目录>/profiles/<岗位标识>/一个操作系统用户

公司层「只登记不落盘」是刻意的。运行时本身没有公司这一层,AIDC 不发明一个假的「公司根目录」去套它。一个公司可以横跨几台机器,也可以几个小部门共用一台机器、各挂一块卷;机器与公司之间没有绑定关系。

什么是操作系统用户,为什么需要它

操作系统用户就是服务器上的账号。机器上每个进程都以某个账号的身份运行,每个文件都记着属主、属组和权限位,内核在每一次读写时按这两样判定放不放行。这是操作系统最底层、最不可绕过的隔离手段。人登录服务器要用账号,AIDC 让每一名数字员工也拥有自己的账号,道理相同。

需要它的原因很直接:数字员工目录只隔状态,不隔文件访问。如果全部数字员工跑在同一个账号下,财务的数字员工用一条读文件命令就能看到人事的会话库,人格文件里写再多禁令也拦不住。治理规则「数字员工的权限不高于它所服务岗位的人」要真能成立,必须落到内核层。

组织五层如何落到机器

AIDC 的组织模型是集团、公司、部门、岗位、场景五层。落到机器上,只有部门和岗位需要操作系统身份,其余各层要么在中枢,要么继承所在岗位:

组织层机器上的对应物权限载体
集团 / 公司中枢租户;一台或多台机器中枢登记表,不是操作系统概念
部门一块卷 + 一个根目录一个操作系统组
岗位(数字员工)<根目录>/profiles/<岗位标识>/一个操作系统用户
场景会话、临时子代理无独立身份,继承所在岗位的用户

于是目录权限直接就是组织边界。以一个部门、两名数字员工为例:

<部门卷挂载点>/                 2770  root:<部门组>        非本部门用户进不来
<部门卷挂载点>/<根目录>/        2775  admin:<部门组>       根目录,同组共用
  skills/                       2775  admin:<部门组>       部门共享技能,组只读
  kanban.db                     0660  admin:<部门组>       部门共享看板,组可写
  profiles/<岗位 A>/            0700  <岗位 A>:<部门组>    只有本人可进
  profiles/<岗位 B>/            0700  <岗位 B>:<部门组>
<部门卷挂载点>/workspaces/<岗位 A>/  0700  <岗位 A>:<部门组>    工作区,一人一桌
<部门卷挂载点>/workspaces/shared/    2770  admin:<部门组>       部门共用桌面,组可写
<部门卷挂载点>/homes/<岗位 A>/       0700  <岗位 A>:<部门组>    工具缓存与配置

同部门的看板能共写、技能只能共读、彼此的目录互不可见,跨部门连卷都进不去。这就是 Agent Cell 所说的「爆炸半径可控」在内核层的实现。运行时的托管模式(同组共用根目录、新建文件自动继承组)正是为这种「一个根目录多个用户」的形态设计的,所以这条路是顺着运行时走,不是硬改。

根目录上放什么、不放什么

给一个部门开区域

  1. 开卷。容量按域内所有数字员工目录之和的一点五倍向上取整;会话库、工作区、子进程 HOME 是三大户。块存储的读写配额按卷计,分卷等于顺手把部门之间的 IO 争抢也隔开了。
  2. 挂载并建根目录。挂到部门的挂载点,写入开机挂载表,根目录设为组共用模式,属组给该部门的组。
  3. 建身份。每名数字员工一个操作系统用户,家目录指向部门卷上的 homes/<岗位>/,加入部门组;账号锁定密码,数字员工不需要登录。
  4. 放入或迁入数字员工。新建的直接在 profiles/ 下创建;从别处迁来的走「搬家式」语义:预同步、干净停止、增量同步、剥掉运行态文件、启动。
  5. 接系统服务。每名数字员工一个服务,以它的用户与组身份运行,工作目录指向 workspaces/<岗位>/、HOME 指向 homes/<岗位>/,与配置里的 terminal.cwd 一致。这一步做完,一名数字员工的身份、桌面与工具状态都在同一块卷上。
  6. 中枢登记。岗位记录写入所属根目录与用户号;重新下发运行时策略,让受保护路径按新根目录生成;投影与工作区守卫的路径规则同步更新。

整个部门换机器时不拷数据:卸下卷、挂到新机器、逐个补用户与服务。用户号在新旧机器上保持一致,目录权限就原样有效。

容量与 IO 的三条经验

两种运行形态下的身份映射

形态进程以谁的身份跑工具以谁的身份执行
一名数字员工一个网关进程该数字员工的用户同上,最直接
一个进程服务整个部门一个专用的服务账号,只持有状态每次工具调用切换到发起的数字员工的用户,动作归本人
分布式形态无常驻进程;目录作为快照存于对象存储按回合唤醒的节点以该数字员工的身份投影目录,快照键按「公司 / 部门 / 岗位」分前缀,逻辑不变
// 治理规则

部门之间不共享卷,数字员工之间不共享用户。任何「为了方便先跑在同一个账号下」的临时做法,都等于取消了岗位边界;跨部门的协作走事件、本体链接与显式共享对象,不走文件系统。

相关阅读