Scert/doc/部署事务人工核查任务清单.md
xuans 84f766a0fc 记录历史事务仅记录处置结果
补充两条无可信恢复基线事务的正式本机处置编号、菜单查询证据和未改写原事务的安全边界。
2026-10-04 15:38:40 +08:00

22 KiB
Raw Permalink Blame History

部署事务人工核查任务清单

2026年10月4日00:40 重新核查与人工处置实机复核

  • [✓] R6-A 至 R6-D:实现、五包专项与竞态、后端全量、静态检查及三数据库持久化复核通过;审计失败、重开、历史不变与危险场景拒绝仍有断言。
  • [✓] R6-E:e00a757 经官方安装器升级第一台,schema25;正式菜单五收尾原 uncertain 成功,菜单四独立查询确认结果。
  • [✓] 新核查 798e7235b4491c6ca6fc4e49b2e03f98a68ece86fd40a836df451a0931477d1f 为 succeeded/committed,关联原处置;开始和结束审计完整,原事务 committed,处置占用为零。
  • [✓] 原 uncertain 历史保留,没有直接修改数据库、重放原动作或手工删锁;第二台严格 HTTPS 200。
  • [✓] 人工回滚处置 c341a3afffa758cc2773ff26ae436e4ef4df3e4d6da08b9ec0cd03e3b53042e3 为 succeeded/rolled_back,正式菜单查询一致,审计完整、占用释放。
  • [✓] 人工提交处置 a7b2b4d03b6e6768b793d930acc0b6ff577d77a51a139324edba46711e24ce2a 在 running 时断开 SSH,重新密码登录通过菜单四查询 succeeded/committed;未重复提交,审计完整、占用释放。
  • 不同版本证书回滚仍须实测;本次两个动作都使用同一张有效正式证书,不扩大结论。
  • [!] 两条缺可信旧基线历史事务仍为 recovery_required,不因本次成功解除。

2026年10月3日23:58 重新核查任务进度

  • R6-A:绑定原处置、方向、服务器和现场摘要,拒绝运行中或缺失可信证据的来源。
  • R6-B:迁移二十五、原子占用交接及新审计已实现,保留原 uncertain;正在补充实库重开验证。
  • R6-C:只读文件及残留核验、严格 HTTPS 后复核、关闭检查完成;专项负向和竞态通过,不执行远端写操作。
  • R6-D:本机菜单五、完整确认、单次令牌、会话绑定、断连查询已实现,五包专项和竞态通过;三数据库门禁仍待本批结果。
  • [~] 最新后端全量、静态检查和隔离 MySQL/PostgreSQL 正在运行。上批严格 umask 全量已通过,不再沿用旧的“等待权限回归”状态。
  • R6-E:正式 Linux 包升级和实机 uncertain 收尾尚未执行,其他无可信基线历史事务继续保留。

本节优先于下方历史清单。未清理生产数据库、未创建辅助验收脚本、未开放新网络端口。

2026年10月3日23:30 不确定处置重新核查任务

沿用已确认的 Linux 范围,不增加网络入口,不直接修改现场事务或删除占用。

  • [✓] 上轮静态检查通过;后端全量唯一失败已定位:宿主 umask 为 0077,测试创建的父目录从开始就是 0700;原代码在显式 umask 0022 下通过,不能归因于备份修改权限。
  • 测试显式建立 0755 权限基线,不修改进程 umask 或产品权限策略,等待 Linux 严格 umask 回归。
  • [~] R6-A 独立重新核查动作:绑定原 uncertain 处置编号、原方向、服务器身份和本次现场摘要;只允许已完成审计的 uncertain,不以超时接管 running。
  • R6-B 持久化关联与占用原子交接:新增处置审计,保留原 uncertain;拒绝或核查失败恢复原占用,结束审计失败保留新占用;成功才原子结束原事务并释放占用。
  • R6-C 只读远端重新核验:仅限原方向对应的 verified 阶段,核验全部文件、临时文件与备份不存在、锁不存在、严格 HTTPS 和关闭结果;不得重载、删锁、重写或重放原动作。
  • R6-D 受保护本机终端单独入口、完整确认、一次性绑定、断连查询及三数据库回归。
  • R6-E 正式 Linux 包升级和当前真实 uncertain 处置收尾;其他不满足严格收尾条件的历史事务继续保留,不能用本功能冒充完成。

2026年10月3日23:08 实机关闭误判整改任务

  • [✓] 真实 SIGKILL 中断部署后,两条事务自动回滚,第二台正常 DNS 严格 HTTPS 仍通过。
  • [✓] 短暂限制 Scert 用户到第二台 SSH 后形成真实待恢复事务;限制已撤销,未改变历史证据或手动删锁。
  • [!] 正式人工提交完成远端收尾,却持久化 uncertain;该记录及占用保留,不直接改终态或重放。
  • [✓] 第一台 Linux 真实 SSH/SFTP 协议回归复现:健康连接主动关闭后返回连接已关闭错误,原用例失败。
  • [~] 修复主动关闭的预期 SFTP 错误分类和并发幂等,保留既有断连及非预期关闭错误。
  • 完成 Linux 竞态、执行器负向及后端回归,构建干净候选包并重新实机验证人工提交、回滚和断连查询。

本轮复用同一有效证书,不表示不同证书版本切换已验收;原两条无可信旧基线事务不在本次修复中解除。

2026年10月3日22:44 真实恢复拒绝证据

  • [✓] 对事务 20261003-142919.192475924-417b9bcc5b09,真实本机终端选择恢复基线并完整确认;因历史 previous_fingerprint 为空,返回处置已拒绝,未执行远端变更。
  • [✓] 处置 278d050dc33d6775d8eb453b74e0a0691f8cff9be2531476678b34b423fc9e85 的数据库结果为 action=restore_baseline、status=rejected、result_code=rejected。
  • [!] 目标站点未配置且可信旧 HTTPS 基线缺失;原事务及锁保留。既有另一 .apmmk.cn 站点的导入成功不能成为该事务的历史基线。
  • 人工提交和回滚成功场景、执行中强制断连、历史无证据事务仍待直接证据;不得将本次拒绝算作恢复完成。

2026年10月3日22:32 正式终端真实事务验证

  • [✓] 第一台已安装干净 a5dfd42 候选包;root 前台 systemctl start Scert-admin 显示四项菜单,非终端输入按预期拒绝。
  • [✓] 第二域名实际推送失败后,菜单二列出两条有历史记录的待恢复事务;对 20261003-142919.192475924-417b9bcc5b09 核查显示三类目标文件均不存在,三个锁存在且归属匹配。
  • [✓] 菜单三选择仅记录核查,经完整确认后返回已记录;处置编号 dd256d2258a1a3a5e28d53593638a8997ed71b3d09420e20b5542a4037dd146d。
  • [✓] 退出后重新启动终端,菜单四按处置编号查询返回相同已记录结论;没有修改原部署事务终态。
  • [!] 第二域名第一台站点返回 *.salg.cn 证书,不符合目标域名;两目标恢复未确认,保持锁和证据,继续检查实际站点配置。
  • 实际完成提交、恢复基线、执行中强制断连及历史无证据事务仍待验证,不以仅记录或普通重新连接代替。

2026年10月3日22:03 本机处置回归终态

  • [✓] R4 最新 PostgreSQL/MySQL 实库、SQLite 执行器竞态、静态检查及后端全量全部正常结束,五项退出码零。
  • [~] R5 修正正式包管理员单元和操作说明中的旧网页重置流程,改为真实本机终端、邮箱验证、三动作及断连查询。
  • R5 实际 systemd 交互和真实 SSH/TLS 动作尚未验证,不能把实库中的远端夹具记作生产通过。

2026年10月3日21:48 外部数据库复核

  • [✓] R3-F/G/H 本机接入源码回归全部结束,HTTP 全包竞态通过;正式包入口尚待验证。
  • [✓] R4-D PostgreSQL 14.24:迁移 22—24 中止事务后重入通过;三动作、开始/结束审计失败、连接池重开查询与占用,以及八并发幂等通过。
  • [✓] R4-E MySQL 5.7.44:执行器同一十场景通过,不提升业务账户权限。
  • [~] 新增测试后的 SQLite 执行器回归、静态检查与后端全量正在执行。
  • R5 正式包、实际终端与双机文件/HTTPS 动作,以及完整首次 Web 与系统邮件门禁尚未完成。

2026年10月3日21:32 本机接入与下一批任务

沿用已确认需求,不增加恢复网络端口,不处理 Windows。

  • R3-F 会话准备、单次执行、持久结果查询;真实对端身份、过期、取消、关闭、管理员变化、错误令牌和跨会话执行拒绝。
  • R3-G 各动作字段互斥、严格响应验证、分片混合载荷拒绝、nonce 轮换和旧请求拒绝。
  • R3-H 终端明确选择三动作、展示风险、完整确认;令牌不输出,断连按处置编号查询而不自动重试。
  • [✓] Linux 三包竞态、HTTP 本机恢复专项竞态、完整静态检查及普通全量通过,包含真实 Unix socket;不是 SSH 文件动作或真实数据库验收。
  • [~] HTTP 全包竞态继续运行,等待权威终态。
  • R4-D PostgreSQL 隔离实库:严格 TLS、仅回环、自建数据库;验证迁移、三动作、审计故障原子性、幂等冲突与重开占用/查询。
  • R4-E MySQL 必要执行器实库补充;R5 正式 Linux 包、双机生产闭环和邮件门禁。

2026年10月3日21:00 本机协议接入任务

本节覆盖下方历史进度,需求沿用已确认范围:只处理 Linux,受保护本机通道,不增加公网恢复入口。

  • [✓] 最新八份源码的部署竞态、SQLite 五场景、完整静态检查及后端全量通过;任务 scert-executor-final-20261003-2052.service 已结束,退出码全部为零。
  • 底层执行器检查点 bf4caeb 已提交并推送;根目录未跟踪文件保持不动。
  • [~] R3-F 本机会话接入准备、执行和查询;只取对端身份,确认对象留在服务端,一次尝试即清空。
  • R3-G 协议字段隔离、严格响应校验、分片混合载荷拒绝、防重放和会话失效测试。
  • R3-H 管理员终端展示动作风险、事务和处置编号,明确确认后执行;断连不自动重放,支持重新连接后查询。
  • R4/R5 必要外部数据库、正式 Linux 包、双机真实生产闭环;整体生产验收未通过。

2026年10月3日20:52 本轮执行任务

沿用已确认的 Linux 整改范围,不增加公网接口,不处理 Windows。本节优先于下面历史进度。

  • R3-B/R3-C:短时一次性确认、操作者/动作/准备摘要绑定,副本共享消费状态,失败确认不可重放。
  • R3-D/R3-E:记录、提交、回滚三个明确动作接入共同互斥及持久化开始/结束审计;增加不重放、不释放占用的脱敏查询。
  • [✓] R4-C 部分回归:并发消费、取消等待、核验/连接收尾/审计期间互斥、失败不切换方向、历史核验阶段重新检查,以及 SQLite 审计失败后真实关闭重开数据库保留占用通过。
  • [~] 最新未知临时文件漏项拦截与查询补充正在回归;尚未通过本机终端执行真实服务器动作,不将 R3/R4 整项标完成。
  • R3 本机协议和管理员终端接入;完成之前不对用户开放写入口。
  • R4 PostgreSQL 等必要实库与 R5 正式包生产门禁,仍未完成。

2026年10月3日20:20 最新复核结论

  • [✓] 部署和自动恢复共同互斥、持久化占用检查及数据库重开拦截专项通过;本批后端全量、竞态和静态检查通过。
  • 人工执行器尚未接入共同互斥;一次性本机确认、三动作、本机协议和终端以及 PostgreSQL 实库仍待完成,R3/R4 整体保持进行中。
  • [~] 本节覆盖下方全量运行中状态;正式生产验收未通过。

2026年10月3日20:17 最新任务状态

  • R4-A 部署及自动恢复进程内互斥、持久化占用识别已接入;涵盖站点核验、提交、恢复核验和连接收尾,等待可取消。
  • 部署竞态、完整静态检查及数据库关闭重开后真实服务拒绝自动重放通过。
  • [~] 最新后端全量仍运行中;R4-A 整体还需人工执行器接入同一互斥,不能标整项复审通过。
  • R3 一次性本机确认、记录/提交/回滚三动作及本机协议与终端,R4 PostgreSQL 实库,R5 正式包验收。

2026年10月3日20:04 最新任务状态

  • 持久化补充竞态、MySQL 迁移十二场景和仓储六场景通过;仓储审计故障注入权限问题已在测试夹具层修复。
  • [~] R4-A:完整部署互斥、自动恢复占用识别及失败关闭;尚未形成执行器端到端链路。
  • R3 一次性本机确认和三类动作、本机协议与终端接入、PostgreSQL 实库及正式包验收仍待完成。

2026年10月3日19:43 最新任务状态

  • R1/R2 底层及本机入口的最新 Linux 三包竞态、完整静态检查、HTTP 全包竞态通过;仍待正式包复审。
  • [~] R3-B/R3-C:准备绑定及重新核验基础通过;一次性确认凭据、本机终端和动作执行尚未接入。
  • [~] R3-D/R4-A/R4-B:独立处置表、占用表、事件表和仓储已编码;原子开始/结束、幂等冲突、不确定占用保留的第一轮竞态通过。完整部署生命周期互斥尚未接入。
  • [~] R4-C/R4-D:故障注入第一轮通过;补测真实数据库重开、MySQL DDL 中断与实库审计。PostgreSQL 实库尚无本轮证据。
  • R3-E/R5:真实动作资格、执行链路、正式候选包和双机生产闭环未完成。
  • [~] R6:同步总清单、开发清单、执行清单、设计和 Linux 测试记录;生产验收保持未通过。

2026年10月3日19:02 边界整改结果

本节优先于历史记录。

  • 长路径响应分片已实现,单帧 16 KiB、数据片 8 KiB、最多四十八片;保持一次采样,完整验证后才返回结果。
  • 长路径六倍 JSON 转义、后续请求、二十类异常分片、总量超限及取消用例通过;最新本机协议、管理员终端和部署三包竞态通过。
  • SQLite 截止时间专项重复二十次及后端完整静态检查通过。
  • [!] 旧五包竞态四包通过,HTTP 依赖编译达到运行上限;整体退出码一。
  • [~] 最新后端全量及 HTTP 竞态继续验证,R2 仍待完整和正式包复审。
  • R3、R4 独立人工处置及持久化审计未完成,R5 未部署本轮候选包,总体验收未通过。

2026年10月3日18:52 本机核查响应边界整改

本节为最新执行入口,保留后续历史记录。需求确认:只处理 Linux,第一台用于部署、第二台用于推送;核查仍为只读,不增加公开接口,不改变历史事务。

  • 修改前检查点 75b3b71 已提交并推送,保存数据库截止时间修复及人工处置设计。
  • 修复后原生 Linux 后端全量退出码零;数据库、部署、本机协议及管理员终端四包竞态已通过,HTTP 包仍在编译,不能记为五包通过。
  • [~] R2 边界整改:合法长路径可能使完整核查结果超过 16 KiB;保持单帧上限,采用有序、有总量上限的分片,仅采样一次,不截断路径,不暴露部分结果。
  • 覆盖长路径及 JSON 转义膨胀、丢片、乱序、随机令牌变化、混合载荷、超限、取消及后续请求;完成原生 Linux 回归与静态检查。
  • R3、R4 独立人工处置及审计尚未编码;不得将只读核查当作恢复闭环。
  • R5 正式候选包部署与生产流程复审未完成,总体验收仍未通过。

2026年10月3日18:28 最新范围与执行状态

本节取代下方历史“当前”状态。第一台负责 Scert 部署测试,第二台仅负责证书推送测试;R5 不再要求双机部署 Scert 主服务,已有服务不擅自卸载。

  • R1:只读底层已完成,等待完整流程复审。
  • [~] R2:入口与 Linux/HTTP 专项已完成;最新全量存在环境缺失及 SQLite 截止时间失败,正在修复。竞态、静态检查和正式包验证未完成。
  • R3、R4:独立人工处置、再次核验、确认幂等、部署互斥、审计原子落库仍未完成。
  • R5:第一台正式安装器部署新包,第二台作为推送目标验证恢复闭环;历史缺证据事务不得伪造提交成功。
  • [~] R6:同步各清单。修改前检查点 978f023 已推送,生产验收未通过。

当前状态以文末 2026年10月3日17:22 补充为准:R1 已完成等待复审,R2 至 R5 未完成,R6 持续同步。

2026年10月3日 需求确认与执行顺序

依据现有整改清单的 P0-10 恢复门禁继续开发,仅处理 Linux。人工核查不能用当前正常状态补造历史部署证据;不能直接修改生产数据库终态。

  • [~] R1:实现只读现场核查,读取目标、临时文件、备份及锁的状态,返回摘要与匹配情况,不返回私钥、密码或锁令牌。
  • R2:通过现有受保护本机 IPC 接入列表与核查入口,不注册公网 HTTP 路由,不增加 TCP 监听。
  • R3:设计独立人工处置记录、明确确认及再次核验;有可信历史证据才允许提交或回滚。缺历史证据的事务不得伪装为历史提交成功。
  • R4:补齐确认幂等、并发部署互斥、审计原子落库、取消及失败保留现场测试。
  • R5:构建 Linux 候选包,经正式安装器部署后,用两台服务器核查旧事务,验证真实 HTTPS 和恢复结果。
  • R6:更新总整改清单和生产测试记录;人工核查功能完整复审之前,P0-10 和总体生产验收不得标为通过。

本轮边界

  • 只读核查结果属于采样观察,不是事务快照,不构成远端 Nginx reload、HTTPS 或部署终态证据。
  • 服务器身份或历史路径无效时拒绝读取;证据缺失时明确报告,不自动生成恢复证据、不删锁、不清理现场。
  • 保留现有密码重置通道的身份校验及邮箱验证码要求,不因接入核查而降低密码重置安全边界。
  • Git 修改前检查点为 ba57490;推送收到 Authentication failed,本地继续,远端同步仍待解决。

2026年10月3日17:22 当前进度补充

本节优先于下方历史状态;保留历史原文,不替换中文字符。

  • R1:只读核查底层已实现,待产品入口和完整流程复审。整体操作限制为 30 秒,尊重调用者更短的超时;读取失败或取消时返回空结果,不把部分观察当成成功。
  • 锁归属读取增加类型和大小检查:拒绝符号链接锁目录、符号链接归属文件及超过 128 字节的归属文件,限制实际读取长度。
  • 原生 Linux 专项通过:5 个取消边界、较早超时保留、9 个真实密码 SSH/SFTP 场景、原有只读核查和恢复预检用例。不可读文件场景以 nobody 用户运行并通过,没有因 root 权限跳过。
  • 部署包全量竞态测试通过:go test -race -count=1 -timeout=240s ./internal/deployment,退出码 0;go vet ./internal/deployment 退出码 0。
  • R2:本机 IPC、终端列表及核查菜单尚未接入,不能将底层方法描述为用户已经可以使用的功能。
  • R3、R4:人工处置、确认幂等、并发互斥和独立审计尚未完成;本轮取消测试不代表人工处置流程全部完成。
  • R5:此次新代码尚未进入双机正式候选包,不改变线上历史事务状态。
  • [~] R6:同步总清单、执行清单、开发清单和 Linux 测试记录;总体生产验收保持未通过。

修正历史 Git 状态:ba57490 后续已经推送成功;本轮修改前检查点 80b6c0c 也已推送成功,不再存在该检查点认证阻塞。

证据目录:第一台 /var/tmp/scert-inspection-20261003-1714/,专项 inspection.log、竞态 deployment-race.log、静态检查 deployment-vet.log。这里运行的是项目内 Go 测试,不是辅助验收脚本;未清理业务数据库、证书或恢复现场。后端全量测试已启动,结果另行记录。

17:35 全量验证状态跟进

联网全量运行因代理不可达中止;首次离线全量运行出现 SSH 响应异常后主动中止,均未记为通过。生产 Scert/nginx 已复核 active,本机严格 TLS 的 /readyz 返回 200。当前以受限 Linux 单元运行后端全量测试,内存上限 650 MiB、CPU 50%,结果仍待获取。R1 的专项、竞态和静态检查结论不变,R2 至 R5 仍未完成。

2026年10月3日18:06 当前执行状态

本节优先于后续历史记录。本轮仅处理 Linux;修改前检查点 c9045a0 已提交并推送。

  • R1:只读现场核查底层已完成,仍等待产品完整流程复审。
  • [~] R2:本机入口已编码,正在执行原生 Linux 验证;尚未部署生产候选包。
    • 待恢复事务按标识排序、每页五条,仅返回摘要;不返回凭据、原始错误或历史证据内容。
    • 复用受保护的本机通道,未增加 HTTP 路由或 TCP 监听;核查与密码重置阶段互斥,逐次更换随机令牌。
    • 终端增加只读核查菜单、翻页及选择,转义终端控制字符,明确区分当前采样与历史部署证据。
    • 第一批原生 Linux 部署、本机协议、管理员终端三包测试退出码为零。
    • [~] 新增真实 Unix socket 菜单集成测试、异常响应拒绝测试和 HTTP 会话边界测试,等待最新版本复跑及竞态检查。
  • R3:独立人工处置记录、再次核验和可信证据限定的提交或回滚未完成。
  • R4:人工处置幂等、并发互斥与原子审计未完成;R2 协议测试不替代这些门禁。
  • R5:本轮修改未进入正式候选包和双机部署,不改变生产历史事务。
  • [~] R6:同步总清单、执行清单、开发清单和生产测试记录。

上一轮后端全量测试触发二十分钟运行上限,退出码为一,不能记为通过。已确认对应单元终止、主进程为零。第一批 R2 专项日志为第一台 /var/tmp/scert-local-recovery-20261003-1757/unit.log;HTTP 专项尚在同目录 http.log 对应的受限单元中运行。未清理生产数据库、证书或恢复现场,未创建辅助验收脚本。

2026年10月4日15:36 两条历史事务仅记录处置

  • [✓] 第一条事务 20261003-142919.192475924-417b9bcc5b09 完成正式菜单 3“仅记录核查”,处置编号 f23507a439fb63e2c829ac9c01020af560ce46dd96b248da851991516195212d;菜单 4 查询一致。
  • [✓] 第二条事务 20261003-142924.300953335-fac63bc92b1f 完成正式菜单 3“仅记录核查”,处置编号 0f65a3d3c4fe8cb881e61e6e39f86747767a8e21421b9d6ca02ea46bf7ad208b;菜单 4 查询一致。
  • [✓] 两次处置仅保存核查审计,均未改变原事务终态、未释放锁、未执行远端写操作。
  • [!] 两条事务仍不能标记为历史部署成功;不同证书回滚和其余生产门禁不受该结果替代。