RikkaHub Agent 工作区的权限与安全 · 隔离与边界
Agent 工作区的安全模型
RikkaHub Agent 工作区基于 proot 构建,这是一个用户态的 Linux 容器技术。安全模型的核心是隔离:
| 隔离维度 | 说明 |
|---|---|
| 与 Android 系统隔离 | 工作区看不到 Android 系统文件(/data、/system 等) |
| 工作区间互相隔离 | 每个工作区独立拥有自己的文件系统和软件包 |
| 无 root 权限 | proot 不需要 root,也不会获得 root 权限 |
| 进程沙箱 | 工作区里运行的进程在 proot 的用户空间沙箱里 |
工作区能访问什么
✅ 能访问
- 工作区自己的完整 Linux 文件系统(
/、home/、etc/、usr/等) - 工作区内安装的所有软件包(apt、pip、npm 等)
- 系统文件管理器暴露的 "RikkaHub" 虚拟磁盘(工作区文件的外部访问窗口)
- 网络(通过 Android 设备的网络栈)
❌ 不能访问
- Android 系统文件(
/data/apps/、/system/bin/等) - 其他 Android 应用的私有数据
- Android API(不能调用 Intent、不能发短信、不能访问通讯录等)
- 设备硬件(USB、蓝牙、NFC 等——除非通过工作区里的 CLI 工具间接操作)
- 其他 RikkaHub 工作区的文件
工作区里的"危险操作"
虽然有隔离,工作区里还是有一些操作值得注意:
| 操作 | 风险 | 防护 | |
|---|---|---|---|
rm -rf /(在工作区里) | 只会清空工作区自己的文件系统,不会影响 Android | 删了就重建工作区 | |
rm -rf ~ | 清空工作区用户目录 | 同上 | |
| `curl ... | bash` 执行远程脚本 | 脚本会在工作区里以当前用户权限运行 | Agent 工具审批(设置工作区工具需要审批) |
| 通过系统文件管理器误删 | 如果在系统文件管理器里操作 RikkaHub 磁盘,可以手动删除工作区里的文件 | 小心操作 | |
| 工作区里执行的网络请求 | 能访问任何公网服务器 | 无法阻止(设计上就是让 AI 联网干活) |
Agent 工具审批
在工作区管理页,你可以配置"工作区提供的工具是否需要用户审批才能执行"。这和 MCP 工具的"需要审批"是类似的设计:
- 开启审批 → AI 每次尝试执行文件写入 / 命令执行等操作时弹出确认
- 关闭审批 → AI 自由执行所有操作(更快,但风险更高)
建议什么时候开审批
| 场景 | 建议 |
|---|---|
| Agent 会执行复杂操作(Git push、删除文件、网络请求) | ✅ 开审批 |
| Agent 只是做简单任务(读文件、统计) | ❌ 可不开 |
| 你不确定 AI 会不会做危险的事 | ✅ 开审批 |
工作区 vs 沙箱 MCP 服务器
| 维度 | Agent 工作区 | MCP 服务器 |
|---|---|---|
| 运行位置 | 你的 Android 设备上 | 云端 / 局域网 / 自建 |
| 进程权限 | 工作区用户(非 root) | 服务器进程权限(取决于部署) |
| 文件访问 | 工作区隔离 Linux | 取决于服务器文件系统权限 |
| 隔离程度 | 高(proot 容器) | 取决于服务器配置 |
| 可控性 | 完全在你手里 | 取决于服务器运维方 |
备份工作区数据
工作区文件不会被手动导出 / WebDAV / S3 备份自动包含在 RikkaHub 备份里。你需要单独处理:
方法 1:系统文件管理器
打开 Android 系统文件管理器 → 找到 RikkaHub 磁盘 → 把整个工作区文件夹复制到云端或本地其他位置。
方法 2:导出工作区文件
在工作区管理页 → 文件标签页 → 选中文件 → 导出。
工作区删除
删除工作区会:
- 清空工作区所有文件和安装的软件包
- 解绑对应助手的工作区
- 从系统文件管理器的 RikkaHub 磁盘里移除该工作区文件夹
删除不会:
- 影响其他工作区
- 影响 RikkaHub 的对话历史、设置、助手配置
总结
Agent 工作区的安全边界是清晰的:
- ✅ 隔离的 Linux 容器,不会影响 Android 系统
- ✅ 每个工作区独立,互相不影响
- ✅ 无 root 权限,无法获取设备控制权
- ⚠️ 工作区内部的危险操作(rm -rf)会清空工作区本身——但不会溢出到外部
- ⚠️ 通过系统文件管理器可以手动操作工作区文件——小心操作
- ⚠️ 网络请求没有限制——AI 能访问任何公网服务器