Ubuntu 26.10:cp、mv、rm 迁入 Rust 版,coreutils 全量迁移收官
此前仅剩的 3 个 GNU 版命令 cp、mv、rm 已在 Ubuntu 26.10 迁入 Rust 重写的 coreutils,默认工具链完成替换。过程不算顺利:TOCTOU 缺陷让它们错过 26.04 LTS,委托审计报出 113 个问题、44 个 CVE,7 月的一次 cp 事故还差点拖延发版。用户侧无感,想留在 GNU 版本可装 coreutils-from-gnu 包。
作者:核流 Admin · 栏目:系统
Ubuntu 的默认工具链正式告别了 GNU Core Utilities。此前仅剩的 cp、mv、rm 3 个命令也完成了迁移。 官方 26.10 发布说明已经把这条讲实:默认命令行工具现已完全跑在 Rust 版 uutils 实现上,此前因兼容问题保留的 cp、mv、rm 全部迁完。26.10 代号 Stonking Stingray,排期 10 月发布。 发布说明把这条变化挂进 Ubuntu Foundations 一栏,条目标题就叫“100% Rust coreutils”,并标注 26.10 仍在开发中。 这条变化分量不轻,官方却只在一处不起眼的条目里带过。Canonical 从 2025 年起就把这套 Rust 实现喂给发行版,走了一年多才到全量替换。 早在 25.10,coreutils 就成了默认,同版本还用 sudo-rs 换掉了用了数十年的旧提权命令。只是 cp、mv、rm 一直按兵不动,直到这次 26.10。 迁移过程不顺利,审计报出 44 个 CVE 卡住的关键是 TOCTOU 缺陷。26.04 LTS 那一轮,cp、mv、rm 因此留在 GNU 版本,其余命令(ls、cat、chmod、du)在更早版本就迁完了。 这些缺陷是委托审计时发现的。Canonical 请 Zellic 在 2025 年 12 月到 2026 年 3 月做了 2 轮审计,先查安全最敏感的工具。 两轮共报出 113 个问题,其中 44 个拿到 CVE 编号,官方口径是绝大多数已经解决。 收尾的一小段也不干净。7 月里 uutils 版 cp 刚进软件仓库就撤了出来,它弄坏了 live 镜像构建;修复标成 “Critical” 后很快进了上游,总算赶上 26.10。 用户基本无感,下一站是 ntpd-rs 对敲命令的人来说,表面什么都不变。项目把与 GNU 的差异当 bug 修,设计目标是“即插即用”的替代品,个别选项仍可能缺失或行为不同。 uutils 项目自己写得更直白:目标是 GNU 工具的 drop-in 替代,全部程序均已实现,个别选项可能缺失或行为有差异;出错提示也比 GNU 显眼,终端里是编译器风格的报错,脱字符直接指向出错参数。 用户侧的改动为零:默认栈换了实现,命令名、参数和日常用法不变。至于想留在 GNU 版本的人,可以装上 coreutils-from-gnu 包,所需组件都在里面。 这也只是“氧化愿景”里的一步。Canonical 今年早些时候成了 Trifecta Tech Foundation 的金牌赞助商,每年投 4 万欧元 资助内存安全方向的系统软件。 路线图上的下一个目标是 ntpd-rs,Ubuntu 时钟同步工具的 Rust 重写版。它已经进入测试,计划到 27.04 转成默认。 按官方描述的那套氧化路线,后续多半还有更多命令陆续替换,只是没在这个条目里展开。 参考资料 It's FOSS:Ubuntu's Rustification Has a New Milestone! Coreutils Migration is Complete Ubuntu Documentation:Ubuntu 26.10 release notes - Ubuntu release notes uutils coreutils (GitHub):GitHub - uutils/coreutils: Cross-platform Rust rewrite of the GNU coreutils