N100 NAS Observer 能力扩展:固定诊断、SMART 与恢复预览
#OpenClaw #NAS #SMART #最小权限
最小权限不是把功能永久停在“只能看容量”。更实用的目标是最大安全权限包络:尽量增加诊断能力,但把身份、对象、路径、副作用、回执和回滚全部冻结。
基础快照隔离架构见 《N100 只读 NAS Observer:从高权限 Skill 到快照隔离》。本文只记录后续能力扩展。
一、从五个查询扩展到十七个工具
扩展后的能力分为三组:
-
九个只读投影:宿主资源、存储、磁盘、SMART 脱敏摘要、共享、Docker 状态、定时任务、统一风险和综合诊断;
-
固定诊断动作:即时刷新、受控临时写探针、脱敏诊断包、SMART short 计划/启动/状态、配置 preview;
-
服务恢复 preview:生成对象哈希、身份绑定、十分钟 TTL、单次使用、前后置检查和自动回滚方案,但不开放生产执行。
OpenClaw 仍然没有 Docker socket、root、通用命令、任意路径、凭据或第三方网络。容器日志也不是任意查询,只在宿主端按固定窗口归约为 error、timeout、OOM、storage 等计数,原文不进入快照。
二、为什么 SMART 需要独立 root helper
普通用户无法可靠读取块设备 SMART。把用户加入 disk 组或授予通用 sudo 会扩大到所有磁盘原始访问,因此没有采用。
最终使用独立 root oneshot:
1 | OpenClaw family-owner |
helper 内部根据既有存储治理配置校验型号、序列号和容量,但输出只保留 system、两个 Btrfs 槽位和 smb 四个逻辑标签。SMART short 只允许 system 与 smb;两块 Btrfs 盘只有摘要权限,不允许测试、scrub、repair 或写入。
root service 使用只读 home、严格保护系统目录、无网络地址族、禁止新增权限和可执行内存。可写路径只包含固定 public/private state 目录。
三、一次真实故障如何补强协议
第一次生产 short test 暴露了一个测试夹具未模拟的差异:smartctl -t short -j 的启动响应不包含完整设备身份字段。旧 helper 已在启动前完成身份校验,但又错误地校验启动响应,于是失败关闭。
请求文件被隔离保留,没有在下一个周期重放。磁盘实际测试结果随后显示 Completed without error。
修复后的协议变为:
-
启动前读取完整摘要并校验冻结身份;
-
先持久化
dispatchingreceipt; -
只执行固定 short 命令;
-
启动后重新读取完整摘要并校验;
-
ETA 后必须看到时间晚于本次 ETA 的新快照,才能把状态升级为
completed。
这同时封闭了两个问题:命令发出后进程崩溃不会自动重放;上一次测试的 Completed 也不能冒充本次结果。
第二次生产测试重复提交返回同一 receipt,ETA 后旧快照负向控制仍为 started,新摘要到达后才变为 completed,结果为 Completed without error。
四、可靠性不是单一绿灯
最终门禁覆盖:
-
stale/future、符号链接、超限 JSON 与字段缺失;
-
原始日志、序列号、设备路径、凭据标记泄漏;
-
命令、路径、参数和磁盘目标注入;
-
并发幂等、request ID 重用、超时与写探针残留;
-
SMART 身份错配、Btrfs 启动请求、伪造结果和历史结果复用;
-
验收器、worker envelope 与 SMART 对象范围的 mutation test;
-
插件注册工具与 manifest contract 的精确一致性。
测试在 Mac 与 N100 staging 运行,生产再复算同一候选 SHA。真实 family-owner Agent 也调用了 SMART 计划工具,确认只有 system 与 smb 可启动。
最终 qB、执行器和 family-exec-worker 的身份、PID、restart 都没有变化;两个 NAS 挂载点使用量逐字节不变,临时写探针无残留,部署窗口没有新增内核存储错误。
五、仍然不应该开放什么
以下能力继续关闭:fnOS 二进制/API/session、SMART 原始 JSON 或任意设备、Btrfs 写入/scrub/repair、mount/umount/格式化、共享 ACL 写入、容器恢复的生产执行、Docker socket、qB/媒体写入、凭据读取和通用命令。
它们确实能提高维修自动化和实时性,但代价是把故障域扩大到存储破坏、宿主 root、跨服务写入或敏感信息泄漏。未来如采用,应逐项建立对象冻结、一次性授权、备份、postflight、receipt 和自动回滚,不能重新聚合成一个“万能 NAS 管理工具”。
OpenClaw 整体能力规划见 《OpenClaw 后续功能规划与待办任务》。
