3月初,Dylan M. Taylor向systemd提交了一行代码:在JSON用户记录里加个birthDate字段,存用户生日。格式是YYYY-MM-DD,管理员能写,普通用户只能读。就这么简单一个功能,两周内他被人肉搜索,收到超过200条死亡威胁。

一个存储字段,怎么就成了开源社区的火药桶?

这事得从加州和巴西的新法律说起。两地先后通过了年龄验证法案,要求操作系统层面提供机制,让应用能确认用户是否成年。Linux发行版们开始头疼:怎么合规?systemd作为大多数Linux系统的用户管理基础设施,自然被盯上了。

Taylor的补丁走的是XDG Accounts portal路线——这是个应用查询用户信息的通用接口,应用想要用户名、头像都走这。他做的,只是让systemd能提供一个生日数据源。应用想验证年龄?自己去算。不想验证?完全不受影响。

「这甚至不是强制收集,」Taylor在邮件列表里解释,「系统管理员决定填不填,用户自己看不到修改入口。」

但反对声浪远超技术讨论范畴。有人在Reddit和X(原Twitter)上散播谣言,说systemd要强制所有Linux用户上报生日给政府。有人伪造截图,声称补丁会自动弹出窗口索要个人信息。情绪被点燃后,Taylor的GitHub主页、家庭住址、过往发言被扒了个精光。

技术分歧 vs 人身攻击

技术分歧 vs 人身攻击

平心而论,技术层面的质疑并非全无道理。

System76的Jeremy Soller提出两点:一是他们正和立法者沟通,开源系统可能最终豁免;二是systemd绑定Linux,如果其他系统也得合规,岂不是要维护两套实现?

打开网易新闻 查看精彩图片

Red Hat的Zbigniew Jędrzejewski-Szmek回应得直接:「就算加州改了,类似法案正在全球二十多个州和国家推进。等技术豁免落地,发行版早被罚款罚死了。」

另一位开发者担心数据持久化:「生日写进systemd记录,删用户都删不干净,隐私风险怎么算?」

这些讨论本该停留在邮件列表。但社交媒体上的叙事完全变了形——「systemd创始人Lennart Poettering要监控所有人」「Linux终于变成Windows了」「这是给审查制度铺路的特洛伊木马」。

Taylor不是systemd核心维护者,只是个贡献者。他收到的威胁邮件里,有人扬言要上门「让他永远写不了代码」,有人发了他的家庭照片。

开源政治的困境

开源政治的困境

这事暴露了一个尴尬现实:Linux社区对systemd的敌意,十年前就该消停了,如今反而成了条件反射。

2010年那波「systemd取代SysV init」的争论,本质是技术路线之争。Poettering当时的态度确实强硬,得罪了不少老派开发者。但十五年过去,systemd已经成了事实标准——Debian、Ubuntu、Fedora、Arch全默认采用,连WSL2都在用。

反对者的心态,有点像坚持用物理键盘的BlackBerry死忠:不是不能用,是「代表了一种精神」。任何systemd的新功能,都可能被解读为「又把手伸长了」。

年龄验证这个场景尤其敏感。它踩中了开源社区的两根神经:政府监管和用户隐私。Taylor的补丁本身不强制任何事,但它让「合规」变得更容易——而「合规」在部分自由软件原教旨主义者眼里,本身就是污点。

打开网易新闻 查看精彩图片

有个细节被舆论忽略了:XDG Accounts portal的设计初衷,恰恰是减少应用直接接触敏感数据。没有统一接口,每个应用要么自己存生日(更危险),要么反复弹窗索要(更烦人)。Taylor的方案其实是把数据集中到系统层,应用只能拿到计算后的年龄,拿不到原始日期。

但「集中」这个词,在阴谋论叙事里自动等价于「监控」。

谁在真正受伤

谁在真正受伤

死亡威胁事件后,systemd维护团队的发声值得玩味。

他们没有撤回补丁,但加了个编译选项:默认关闭birthDate功能,发行版自己决定开不开。这是技术妥协,也是政治表态——「我们没做错,但不想更多人受伤」。

Taylor本人暂时退出了公开讨论。他的GitHub提交记录停在3月15日,邮件列表再无回复。

讽刺的是,那些喊得最响的「隐私捍卫者」,用的攻击手段恰恰是侵犯隐私的极致。人肉搜索、死亡威胁、伪造证据——这些和「反对政府监控」的立场,要怎么自洽?

加州法案的合规期限是2025年底。巴西的更紧,部分条款已经生效。发行版们等不起立法豁免的空头支票,但也不敢顶着社区怒火强推功能。

Debian的初步方案是:打包时默认禁用,需要的企业用户自己编译打开。Fedora在评估把数据存到Flatpak沙箱而非systemd。都在绕弯子,都在避免直接碰这个雷区。

一个存储字段的技术决策,最终被拖进了文化战争的泥潭。开源社区向来以「用代码说话」自豪,这次却证明了:当情绪压过事实,代码再干净也挡不住洪水。

Taylor的补丁还在那里,birthDate字段安静地躺在文档里。问题是:下一个需要为「合规」写代码的开发者,还敢提交吗?