Ubuntu 26.04 命令列靜靜換上 Rust:安全多咗,兼容風險仲喺度
3C 產品

Ubuntu 26.04 命令列靜靜換上 Rust:安全多咗,兼容風險仲喺度

圖片:via XDA Developers — https://www.xda-developers.com/quiet-rust-migration-linux-security/
TechLab 編輯部(譯)·

sudo-rs 同 rust-coreutils 已成預設,但核心指令仍逐件過關

Ubuntu 26.04 LTS 有個幾乎睇唔到、影響又幾深嘅改動:你照樣輸入 sudo apt updatelsdate,但底層跑緊嘅其實可能已經係 Rust 版本。sudo-rs 同 uutils 嘅 rust-coreutils 已成系統預設,操作習慣冇大改,亦冇彈個畫面催你學新指令。對一般桌面用家嚟講確實幾無感;但開發者、寫 shell scripts 同管理 server 嗰批人,就值得知道部機實際行緊邊個版本。

26.04 係第一次由 LTS 用家大規模接觸

Canonical 早喺 Ubuntu 25.10 已預設採用 sudo-rs 同 rust-coreutils,先畀大家實際用一輪,再帶入 2026 年 4 月推出嘅 26.04 LTS。呢個時間點幾重要,因為好多公司同 server 管理員會跳過半年一次嘅普通版本,只跟兩年一代嘅 LTS。換句話講,Rust 化唔算今個月先發生,但 26.04 先令呢套新底層正式進入大量長期使用、幾年唔換系統嘅環境。

實際轉換亦冇宣傳講到咁一刀切。Ubuntu 26.04 嘅 lscatdate 等工具由 rust-coreutils 提供,cpmvrm 仍然用 GNU 版本。Canonical 喺正式推出前請 Zellic 分兩輪審計 uutils,合共搵到 113 個高低程度唔同嘅問題;絕大部分其後已修正,但截至 4 月 22 日,嗰三個檔案操作工具仍有 8 個未處理好嘅 TOCTOU 問題,所以未獲放行。官方 release notes 到而家亦繼續標明佢哋沿用 GNU。

Ubuntu 26.04 LTS 桌面,中央係 Resolute Raccoon 浣熊圖案

圖片:Canonical

Rust 減少一類大鑊漏洞

Rust 最實際嘅優勢,係 compiler 同語言規則會攔住好多 use-after-free、無效 pointer 同越界記憶體操作。放喺普通小工具,呢類 bug 可能只係令程式 crash;放喺 sudo 就完全另一回事。sudo 負責判斷邊個可以用高權限執行指令,記憶體錯誤一旦變成提權漏洞,攻擊者就可能由普通帳戶攞到整部機嘅控制權。舊 sudo 過往確實出現過 buffer overflow 類漏洞,呢個風險唔係紙上談兵。

不過,程式用 Rust 寫唔代表自動冇漏洞。sudo-rs 要呼叫作業系統嘅 setuid() 等介面,仍會有經審查嘅 unsafe code;權限判斷寫錯、身份驗證設定出事、TOCTOU、第三方 crate 或軟件供應鏈風險,亦唔會俾 borrow checker 神奇清走。uutils 審計搵到 113 個問題,亦反映記憶體安全只係縮窄攻擊面;新 implementation 一樣要經審計、測試,再用時間驗證。

Ubuntu 26.04 LTS 安全更新官方配圖,畫面有鎖頭、server 同電腦插畫

圖片:Canonical

指令個名一樣,行為可以差半步

uutils 嘅目標係做 GNU Coreutils 嘅 drop-in replacement,連輸出格式同 exit code 都想對齊;項目文件同時承認,部分選項仲未齊,某啲情況嘅行為亦會有差異。人手輸入 ls 多數察覺唔到,但 scripts 可能會讀取錯誤訊息、日期格式、排序結果或特定 exit code。只差一個空格、locale 處理唔同,已足以令跑咗幾年嘅備份、部署或排程工作突然失靈。

sudo-rs 亦有較具體嘅分別。Ubuntu 文件指出,密碼 prompt 同舊 sudo 唔同,靠 Expect 配對固定文字嘅 automation 可能直接等到 timeout;I/O logging、sudoreplaysudoers.ldap 暫時亦唔支援,LDAP 要改經 PAM 處理。一般人打一條 sudo 指令冇咩感覺,但有集中權限管理、錄低管理員操作,或者用舊式自動化工具嘅 server,升級前真係要逐項對設定。

GNU fallback 係今次最實用嘅保險

Ubuntu 冇即刻拆走舊工具。要核對個別指令時,可以喺名稱前加 gnu,例如用 gnuls 跑返 GNU 版本;原版 sudo 則改名做 sudo.ws,整套 GNU Coreutils 亦可以裝返。呢條退路好關鍵,尤其係 CI、安裝程式、備份 scripts 同救機工具:先喺 staging 跑一次,再檢查輸出、exit code、symlink、權限同錯誤路徑,出事時仲有舊版本頂住。

Canonical 因應審計結果暫停轉換 cpmvrm,呢種逐步替換嘅做法,實際過一口氣全面轉用 Rust。核心指令牽涉大量舊 scripts,同時又處理權限同檔案,穩陣做法就係逐件換、逐件測、保留 fallback。Ubuntu 26.10 目標係完成 rust-coreutils 轉換;管理大量 26.04 系統嗰批人,呢段時間應該先盤點冷門參數同 automation,唔好淨係確認 ls 仲識郁。


參考來源

本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。

分享:WhatsAppThreadsTelegramFacebook