下一章 上一章 目录 设置
3、第二件原件 一篇被遗忘 ...
-
周闻的账号出现在A401控制机上以后,沈砺川一夜没在共享文件夹里新增任何东西。
许砚知早上六点半醒来,先看版本记录。没有新文件,没有修改,没有一条解释。聊天框最后停在昨晚十点四十七分,沈砺川发的那句:他不该还有这个账号。
许砚知洗漱完下楼,沈砺川正站在早餐车旁边,手里捏着两张皱得不成样的打印纸。蒸笼掀开,白汽把他的脸遮了一下。
“你没睡?”许砚知问。
“睡了。”
“多久?”
“这问题不属于证据核验范围。”
许砚知看他眼下:“两小时?”
沈砺川把一袋包子递过来:“先吃。你昨天豆浆当午饭,图书馆又没去食堂。”
“不要用食物转移话题。”
“那你边吃边审。”
许砚知接过纸袋,没有立刻拆。沈砺川手里的打印纸是一份手写成员表,名字旁边标着项目角色和他能确认的权限。
周闻:队长、内容与外联、曾持有管理员权限。
陆星迟:测试用户与产品记录、只读数据权限。
沈砺川:后端与部署、仓库维护权限。
第四行只有一个问号。
“谁?”许砚知问。
“我记得还有一个大学端维护人,但名字从不出现在公开材料里。我们叫他‘老师那边的人’。”
“老师是谁?”
“合作营负责老师姓赵,赵嵩。他不写代码,项目资源都从他那里走。”
许砚知把名字记进台账:“周闻账号为什么保留?”
“停项时应该全部冻结。我的SLC账号后来也被标成只读。”
“你确认,还是记得?”
沈砺川盯着他:“我确认当时收到过权限回收邮件。邮件没了,但我记得内容。”
“那先标‘有回收通知,原件缺失’。”
“你不觉得我在给自己找理由?”
“如果是理由,核验后会暴露。如果是事实,核验后会留下。”
沈砺川看了他一会儿,忽然把那份成员表递过来:“你对谁都这么说?”
“什么?”
“把最难听的可能摆在前面,还让人觉得不是在判他。”
许砚知把纸放进文件夹:“因为我确实没判。”
早餐车老板催后面的人往前。两个人让到梧桐树下。沈砺川拆开自己的包子,吃了两口,忽然说:“寒灯出事那天,周闻在A401里面。”
“你呢?”
“门外。”
“为什么不进去?”
沈砺川咬住下一句话似的,过了几秒才说:“陆星迟在哭。他不让我进。”
“陆星迟是被贴标签的人?”
“是。”
“帖子是周闻发的?”
“公开记录里是。”
“你不确定?”
“我只看见他用自己的账号登录论坛,没看见他按发送。”
许砚知把这句也记下来。沈砺川看见后没有阻止,只问:“你什么时候能不拿本子?”
“事情结束后。”
“那可能很久。”
“我带了备用的。”
沈砺川终于笑了一下。笑意很短,却让他脸上的疲惫显得更明显。
高等代数课在八点开始。
老师讲线性方程组和初等变换,把一串复杂方程压成增广矩阵。黑板左侧写满步骤,右侧只剩几行简洁结果。老师提醒:“变换的前提是等价。不能为了得到好看的形式,把原问题偷偷换掉。”
许砚知在“等价”下面画了一条线。
课间,后排有人讨论学院论坛的帖子。声音不算大,刚好能让附近的人听见。
“那个沈砺川是不是高中就搞过事故?”
“听说管理员账号是他的缩写。”
“新生系统还把他推荐给另一个人,挺吓人的。”
沈砺川正低头翻书,像没听见。手里的页码却停在同一页,很久没动。
许砚知原本不准备参与。未经核验的讨论没有纠正价值,贸然争辩只会让流言得到更多注意。但说话的人很快把“管理员账号”改成“他把□□传到论坛”,结论跨过了现有证据能支持的边界。
许砚知回头:“哪份记录证明是他上传的?”
几个人没想到他会开口,其中一个说:“帖子里不是有SLC提交记录?”
“提交记录是权限变更,不是论坛上传。你把两件事合并了。”
“你怎么知道他没做?”
“我不知道。”许砚知说,“你也不知道。所以你可以说‘SLC账号参与过权限变更’,不能说‘沈砺川上传了数据’。”
对方脸上有点挂不住:“你俩不是刚认识吗?这么快就替他说话?”
“我在纠正一句超出证据的陈述。”
“有区别?”
“有。以后如果证据证明是他,我会写是他。现在没有。”
教室短暂安静了一下。有人把视线转开,也有人在群里打字。许砚知知道,这种纠正不会立刻结束流言,反而可能让自己的名字一起被记住。
老师从走廊回来,讨论停住。
沈砺川直到上课都没有看他。第二节课过半,许砚知的草稿纸右边忽然多了一行字:
你没必要替我挡。
许砚知写:没有挡。纠错。
沈砺川:结果一样。
许砚知:结果不一样。挡意味着我知道你无辜。纠错只说明他们说得过头。
纸被推回去后,沈砺川盯了很久,在下面写:你安慰人的能力是负数。
许砚知:我没在安慰。
沈砺川拿笔在“负数”下面重重画了两道线。
下课铃响时,许砚知收书。沈砺川站在旁边,低声说:“还是谢谢。”
“你已经谢过洗衣房监控了。”
“这次不一样。”
“具体哪里不一样?”
沈砺川被问住,最后把书包甩到肩上:“你就当正向样本加一。”
两人刚走到教室后门,一个穿白衬衫的男生挡住去路。
他看起来比他们大一两岁,头发修得很整齐,袖口扣到腕骨,手里拿着一张打印出来的论坛截图。
“许砚知?”他先问。
许砚知没有答,反问:“你是谁?”
“周闻。”
沈砺川停在他身侧。
许砚知第一次见到这个名字对应的人。周闻并不像旧帖里描述的“失控队长”,也不像沈砺川提起时那道没关好的门。他看起来冷静、礼貌,甚至特意站在不堵住整条通道的位置。
“你们在查寒灯。”周闻说。
“谁告诉你的?”许砚知问。
“你们动了旧U盘,A401的记录也被调了。想不知道很难。”
沈砺川开口:“WEN账号昨晚为什么登录A401控制机?”
周闻没有看他,只把打印纸递给许砚知:“先看这个。SLC批准把内部测试结果接入展示页,时间在事故前四小时。”
截图里有一条提交记录:`SLC approved merge: public_display`。
许砚知没有接纸:“原始链接。”
“旧仓库关闭了。”
“截图来源。”
“我保留的。”
“文件元数据。”
周闻笑了笑:“沈砺川找的人果然和他完全相反。”
“我不是他找的。”
“那更糟。你是被系统找来的。”
这句话让走廊另一端几个还没离开的学生慢了脚步。
许砚知接过截图,只捏住纸角:“这只能证明SLC账号批准了合并,不能证明账号当时由谁使用,也不能证明合并内容包含真实数据。”
“你很会替人保留解释。”
“同样也替你保留。”
周闻脸上的笑淡了。
沈砺川往前一步:“你昨晚用账号进A401了没有?”
“账号名字是我,不等于使用者是我。”周闻看着他,“这不是你最希望别人承认的逻辑吗?”
沈砺川的下颌绷紧。
许砚知伸手挡在两人之间,不是推谁,只把周闻递来的纸夹进文件夹:“你愿意提供原始设备吗?”
“为什么?”
“证明截图没有被修改,也证明你不是昨晚的登录者。”
“你在怀疑我。”
“我在给你核验的机会。”
周闻沉默片刻,从口袋里取出一张折过的存储卡登记单:“北门面馆,十二点半。我可以给你看旧备份,但沈砺川不能碰。”
沈砺川冷笑:“你以为我想碰你的东西?”
“你以前碰过的东西已经够多了。”
周闻说完转身离开。
教室里还没走完的人把这一段看得清楚。有人低头装作收书,有人已经在群里问“白衬衫是谁”。刚才被许砚知纠正的同学把一条消息发到班群:
【所以现在是旧项目当事人来找新生了?】
下面很快跟了十几条回复。
许砚知没有解释。他把周闻出现的时间、递交材料和约见条件写进共享台账,再把刚才那段对话按记忆拆成“直接陈述”和“推断”两栏。沈砺川站在旁边看了半天,忽然伸手把他手机屏幕扣住。
“先别管群。”
“我要留传播起点。”
“你刚才已经因为我被人盯上了。”
“不是因为你,是因为有人在公开场合给出超出证据的结论。”
“结果一样。”
“又不一样。”许砚知把他的手移开,“如果你想让我退出,就明确说。不要用‘保护我’替我做决定。”
沈砺川愣住。
这句话说得不重,却比争吵更直接。许砚知知道沈砺川习惯冲在前面,也知道这种习惯在旁人眼里容易被解释成可靠;可如果每次风险出现,沈砺川都先替别人决定谁该离开,那和他讨厌的系统推荐没有本质差别。
“我没想让你退出。”沈砺川说。
“你刚才在想。”
“我只是觉得——”
“你觉得我继续查会被牵连。事实成立。但是否继续,由我决定。”
沈砺川把后半句话咽了回去。几秒后,他往旁边让开一步:“好。你决定。”
一只黑色签字笔从后排飞过来,落在许砚知桌上。
“决定之前先看这个。”
说话的是林疏月。她和他们同班,开学三天里几乎没参与过群聊,坐在最后一排,笔记只记反例。她把电脑转过来,屏幕上是学院论坛的网页存档。
“原帖删了,但搜索引擎缓存还在。”她说,“周闻刚才给你的截图少了上一条提交。”
缓存页面里,SLC批准public_display之前,WEN账号先发起合并;下一条是系统自动要求双人确认,SLC才点击批准。
“这不能证明谁操作账号。”林疏月说,“但能证明截图被裁过。有人只想让你看见批准,不想让你看见发起。”
沈砺川看着屏幕:“你为什么帮我们?”
“不是帮你们。我讨厌截图只截一半。”她收回电脑,“还有,我刚才听见周闻约你们去北门。别把面馆变成私人审讯室,至少开远程见证。”
许砚知点头,把缓存链接和网页快照归档。
林疏月背起包,走前又补了一句:“班群那边我会发一句‘现有记录不足以指向个人’,但我不是给你们洗白。我只是不想本届新生第一周就学会靠半张图判人。”
她离开后,沈砺川看着许砚知:“你们班怎么全是这种人?”
“哪种?”
“说话像审计报告,但做事比安慰有用。”
许砚知把林疏月加入台账协作者,只给她查看公开材料的权限:“比你稳定。”
“我现在稳定多了。”
“待观察。”
沈砺川站在原地,手指攥住书包带。许砚知没有说“别生气”,也没有问“你还好吗”,只看了眼时间:“还有二十分钟。先去A307,把见面地点和条件报给贺承远。”
“你要去?”
“去。”
“他只让你看。”
“我不会单独接触设备。你在视线范围内,贺承远远程见证。”
“周闻不会同意。”
“那就不看。”
沈砺川抬头:“你不怕错过线索?”
“怕。但不能用错误方式得到正确答案。”
北门面馆十二点半刚过饭点,最里面一桌空着。周闻已经坐在那里,桌上放着一台旧平板和一个密封袋。他看见沈砺川跟来,眉头明显皱了一下。
“我说过他不能碰。”
“他不碰。”许砚知把手机支架放到桌角,屏幕上是贺承远的视频通话,“你也不碰我的设备。展示过程全程录像,先拍封口,再开袋。”
周闻看着屏幕里的贺承远:“现在连新生都这么麻烦?”
贺承远说:“想省麻烦就把材料交学校。你选择私下见面,就按他们的证据规则。”
周闻最终拆开密封袋。存储卡插进旧平板后,他打开一份名为member_matrix.csv的表。
表格记录寒灯成员、角色、账号、权限和退出时间。许砚知逐行拍摄,没有跳过空白列。
WEN一行写着:项目队长,管理员权限,事故后主动退出。
SLC一行写着:部署维护,仓库权限,事故后权限回收。
陆星迟一行写着:测试与反馈,只读权限,事故后停止参与。
最下方还有一行没有姓名,角色是“大学端迁移维护”,账号字段为`ROOT-LAB`。
“这是谁?”许砚知问。
“赵老师那边的人。”周闻说,“我们没见过。”
“为什么名单里没有赵嵩?”
“他是项目指导,不进成员表。”
沈砺川隔着桌子问:“原始表最后修改时间?”
周闻没有回答,点开属性。
最后修改时间是事故后第三天。修改者:SLC。
许砚知看向沈砺川。
“不是我。”沈砺川说得很快,“事故第二天我就收到了账号冻结通知。”
周闻把另一张截图调出来:“可系统写的是你。”
“系统还写你昨晚进了A401。”
两个人的声音都硬了起来。
许砚知没有劝架。他放大表格版本信息,发现最后修改并不是普通保存,而是执行了一条成员删除操作:`remove member WEN; migrate owner to SLC`。
周闻的名字被移出管理员组,责任显示转到SLC。操作发生在事故后第三天凌晨,同样是两点十七分。
许砚知问:“这个时间你们谁在线?”
沈砺川说:“我在家,被要求停止联系项目。”
周闻说:“我已经退群。”
“陆星迟呢?”
两个人同时安静下来。
周闻先移开视线:“住院。”
“什么原因?”
“和你没关系。”
“和记录有关就有关系。”
周闻关掉表格:“今天到这里。”
许砚知伸手按住密封袋旁边的登记单,没有碰平板:“你可以结束展示,但请确认我们已录像保存当前属性。以后如果表格发生变化,今天的版本仍然存在。”
周闻看着他:“你真的以为保存版本就能保存真相?”
“不能。”许砚知说,“但至少能防止每个人只留下对自己有利的那一版。”
周闻把存储卡拔出,重新封袋。他离开前,对沈砺川说:“SLC不是单纯的账号缩写。最开始是你自己取的名字——Shen Lichuan。你想证明别人用过它,先证明你当年没有把密码给出去。”
门帘落下,面馆里只剩油烟机的低响。
沈砺川盯着桌面,过了一会儿说:“我给过周闻临时密码。”
许砚知问:“多久?”
“一周。理论上到期自动失效。”
“实际呢?”
“我没核验。”
这是他第一次主动说出一项对自己不利、且没有任何人逼问的事实。
许砚知把它写进台账。笔尖落下时,沈砺川忽然问:“你现在信我多少?”
“这个问题没有可量化依据。”
“昨天你还说正向样本。”
“我没给百分比。”
沈砺川看着他,像在等一个不那么像报告的回答。
许砚知合上本子:“我相信你刚才说的是实话。至于账号由谁使用,继续查。”
沈砺川的肩膀缓慢松下来。他把那碗已经坨掉的面往自己面前拉,低声道:“够了。”
许砚知没有问“什么够了”。他把另一双一次性筷子拆开,夹走自己碗里已经冷掉的青菜。两个人安静吃了几分钟,门口不断有人进出,老板把空碗摞到消毒柜旁,没人知道这张油腻小桌上刚核过一份三年前的责任名单。
沈砺川吃到一半,手机收到一封旧邮件找回通知。他昨晚向原邮箱服务商提交了账户恢复,系统刚刚放回一批标题和时间,正文仍需等待。
列表中有一封事故后第二天的邮件:
【寒灯项目权限调整通知】
发件人不是合作营老师,而是自动服务账号。收件人只有SLC,没有抄送周闻或陆星迟。标题下方的状态写着“已读”,时间是凌晨两点二十三分。
“你读过?”许砚知问。
“我记得白天收到,不记得凌晨看过。”沈砺川把手机放到桌面,没有删,也没有急着解释,“邮件服务商能给登录记录吗?”
“申请。先保存当前恢复页面。”
沈砺川照做。他截全屏、导出邮件目录,再把恢复申请编号写进共享台账。做完以后,他把手机推到许砚知面前:“密码问题也写进去。”
“什么密码问题?”
“SLC当年不是我的个人账号,是项目公用部署账号,名字用的我缩写。最开始密码只有我知道,后来为了让周闻发布演示,我口头告诉过他一次。”
“有没有改回?”
“我以为临时令牌过期就够了。主密码没改。”
许砚知抬头。
沈砺川没有避开:“这是我的错误。你不用替我把它写轻。”
许砚知在台账里输入:SLC主密码曾口头共享,事故前未更换;可能使用者不唯一。责任项:沈砺川未及时回收凭据。
他把屏幕转过去:“这样?”
沈砺川看完,点头:“这样。”
“周闻看到可能会说你在推卸。”
“那就让他提供相反证据。”
“老师看到可能会追责。”
“该追就追。”
这句话没有豪气。沈砺川说完继续吃面,像只是接受一项迟到三年的账单。
许砚知把那条责任项设为不可删除,只允许追加说明。沈砺川看见权限设置,问:“你不怕我后悔?”
“怕。所以现在锁。”
沈砺川低头笑了一下:“你这人真不适合做共犯。”
“我们不是共犯。”
“目前不是。”
“以后也不是。”
“行,许同学。你负责保证。”
离开面馆前,贺承远把录像备份上传。系统自动生成文件摘要时,许砚知注意到member_matrix的旧版本历史还有一条未展开记录。
他点开只读预览。
事故后第三天,两点十七分,WEN被移出成员表;同一分钟,SLC被设为显示责任人。
操作来源不是沈砺川的个人设备。
来源终端写着:A401-07。
更异常的是,A401-07在那次操作后没有正常关机。日志显示它持续运行了四十六分钟,期间向新生导引服务器上传过一份加密压缩包。压缩包名称没有保留,只留下七位校验前缀。
许砚知把前缀抄进本子。沈砺川看了一眼,脸色变了。
“我见过这个前缀。”他说,“昨天U盘镜像完成时,coldlight_old目录的整体哈希就是从这七位开始。”
也就是说,旧U盘里的那份“备份”很可能不是三年前留下的原件,而是有人在事故之后重新打包、改过成员归属,再故意送回他们手里。
许砚知把“原始备份”四个字划掉,改成:待核验副本。
沈砺川没有反对。他把那张成员表重新装进透明袋,封口时特意把手从许砚知的记录本旁边移开。
透明袋封好后,登记单自动打印出“原件数量:2”。桌上却只有一张存储卡。另一件原件从未被周闻拿出来。