From 7e9319b1667c6e262a958d986116fbcef12a882d Mon Sep 17 00:00:00 2001 From: claude_dev Date: Sun, 6 Sep 2026 20:07:17 +0800 Subject: [PATCH] =?UTF-8?q?docs(data):=20spec=C2=A718=20root=20vs=20admin?= =?UTF-8?q?=20=E7=BB=88=E5=B1=80=E8=AE=BA=E8=AF=81=E5=85=A5=E6=A1=A3=20[na?= =?UTF-8?q?s]=E2=80=94=E2=80=94=E5=BA=94=E7=94=A8=E6=88=B7=E3=80=8Croot?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E4=B8=8D=E5=8F=AF=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E6=9B=B4=E5=A5=BD=E5=90=97=E3=80=8D:root?= =?UTF-8?q?=E5=B1=9E=E4=B8=BB=E5=86=99=E4=BF=9D=E6=8A=A4=3D=E5=8D=8A?= =?UTF-8?q?=E5=90=8A=E5=AD=90=E5=B9=BB=E8=A7=89(admin=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E8=A6=86=E5=86=99=E4=BD=86=E8=83=BD=E5=88=A0,=E5=88=A0?= =?UTF-8?q?=E7=9C=8B=E7=9B=AE=E5=BD=95=E6=9D=83=E9=99=90rwxrwxrwx,03:00?= =?UTF-8?q?=E9=93=BE=E5=85=88rm=E5=86=8D=E6=8B=89workaround=E5=AE=9E?= =?UTF-8?q?=E8=AF=81),=E9=98=B2=E4=BD=8F=E5=8E=9F=E5=9C=B0=E6=94=B9?= =?UTF-8?q?=E9=98=B2=E4=B8=8D=E4=BD=8F=E5=88=A0=E4=BA=86=E9=87=8D=E5=BB=BA?= =?UTF-8?q?;root=E8=B7=91=E9=87=87=E9=9B=86=E4=BB=A3=E4=BB=B7=E5=85=A8?= =?UTF-8?q?=E5=A4=A9=E5=80=99=3Droot=E8=BF=9B=E7=A8=8Badmin=E6=9D=80?= =?UTF-8?q?=E4=B8=8D=E5=8A=A8(Synology=20sudo=E4=BA=A4=E4=BA=92=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=87=AA=E5=8A=A8=E5=8C=96=E5=81=9A=E4=B8=8D=E4=BA=86?= =?UTF-8?q?,=E6=9C=AC=E8=AE=BE=E8=AE=A1=E9=AA=8C=E6=94=B6=E5=90=ABkill-9?= =?UTF-8?q?=E7=BB=AD=E8=B7=91=E9=A1=B9root=E6=96=B9=E6=A1=88=E8=BF=9E?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=83=BD=E6=97=A0=E6=B3=95=E6=89=A7=E8=A1=8C?= =?UTF-8?q?)+venv=E8=A3=85=E5=8C=85=E7=9B=AF=E8=B7=91=E5=85=A8=E8=A6=81roo?= =?UTF-8?q?t=E9=99=AA=E8=B7=91+=E5=A4=96=E7=BD=91=E7=88=AC=E8=99=AB?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E6=9D=83=E9=99=90;=E4=B8=8D=E5=8F=AF?= =?UTF-8?q?=E6=94=B9=E6=80=A7=E4=BA=A4=E7=BB=99=E6=AD=A3=E7=A1=AE=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=3Dappend-only=E5=8D=8F=E8=AE=AE(dt=E5=88=86=E5=8C=BA?= =?UTF-8?q?=E5=8F=AA=E8=BF=BD=E5=8A=A0/tmp+rename/id=E9=94=AE=E6=8E=A7)+?= =?UTF-8?q?=E5=8F=AF=E5=86=8D=E7=94=9F=E6=80=A7(=E6=BA=90=E7=AB=99?= =?UTF-8?q?=E9=83=BD=E5=9C=A8=E6=96=AD=E7=82=B9=E5=8F=AF=E9=87=8D=E6=8B=89?= =?UTF-8?q?,=E8=AF=AD=E6=96=99=3D=E5=85=A8=E4=BD=93=E7=B3=BB=E5=94=AF?= =?UTF-8?q?=E4=B8=80=E5=8F=AF=E5=AE=8C=E5=85=A8=E5=86=8D=E7=94=9F=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=B1=BB),=E5=A6=82=E9=9C=80=E9=98=B2=E7=AF=A1?= =?UTF-8?q?=E6=94=B9=E5=B1=82=E9=AA=8C=E6=94=B6=E5=90=8E=E5=8A=A0DSM?= =?UTF-8?q?=E5=BF=AB=E7=85=A7/=E6=AF=8F=E5=91=A8tar+=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E5=92=8C(=E5=AF=B9=E4=BB=BB=E4=BD=95=E5=B1=9E=E4=B8=BB?= =?UTF-8?q?=E7=94=9F=E6=95=88)=E2=80=94=E2=80=94=E7=BB=93=E8=AE=BAadmin?= =?UTF-8?q?=E8=90=BD=E5=9C=B0=20[nas]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../specs/2026-07-21-data-source-fusion-design.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/superpowers/specs/2026-07-21-data-source-fusion-design.md b/docs/superpowers/specs/2026-07-21-data-source-fusion-design.md index 67f10fc..87f8562 100644 --- a/docs/superpowers/specs/2026-07-21-data-source-fusion-design.md +++ b/docs/superpowers/specs/2026-07-21-data-source-fusion-design.md @@ -473,7 +473,16 @@ Schema(列名冻结,消费方=factor session 因子加工层,后续 provider fet /volume1/stock 建目录/写/删全通(rwxrwxrwx+ACL,admin 属主);venv `--copies` 在 /volume1 建成+stdlib OK+pip user-site 既有;读 admin 家 CI 部署路径无障碍;⚠️坑:venv 建在 **/tmp 会 Permission denied**(DSM /tmp 特殊限制,且 /tmp 会被清空)——设计本就落 /volume1,勿改 - /tmp。设计内无任何一步需要 root;万一未来例外,人工 sudo/改任务属主是逃生门非设计依赖。**为何独立任务而非并进 03:00 链**(用户问):①失败不连坐——03:00 链=从 VPS 拉 + /tmp。设计内无任何一步需要 root;万一未来例外,人工 sudo/改任务属主是逃生门非设计依赖。 + **root vs admin 终局论证**(用户问「root 数据不可修改的设计更好吗」):root 属主的「写保护」 + 是半吊子幻觉——admin 不能覆写 root 文件**但能删**(删看目录权限,/volume1/stock rwxrwxrwx, + 03:00 链「先 rm 再拉」workaround 实证),防住原地改防不住删了重建;而 root 跑采集的代价是 + 全天候的——**root 进程 admin 杀不动**(Synology sudo 要交互密码,自动化做不了;本设计验收 + 含 kill -9 续跑项,root 方案连测试都无法执行)+venv 装包/盯跑全要 root 陪跑+外网爬虫拿最大 + 权限。**不可改性交给正确工具**:append-only 协议(dt=分区只追加/tmp+rename/id 键控)+ + 可再生性(公告新闻都在源站,断点机制可重拉,语料=全体系唯一可完全再生的数据类);如仍需 + 防篡改层,验收后加 DSM 快照/每周 tar+校验和归档——对任何属主都生效,属主只是假不可变。 + **为何独立任务而非并进 03:00 链**(用户问):①失败不连坐——03:00 链=从 VPS 拉 行情的对内同步,corpus=对外 HTTP 慢爬+数小时回补马拉松,合成一条则 corpus 卡死会拖死每日 行情同步(断路器饿死同款教训,绝不复刻)②属主/部署管道不同——sync 脚本在 /volume1/stock root 地盘 CI 不覆盖须手动 scp,corpus 脚本走 CI deploy 的 repo 路径,搅进一条任务两头别扭