UbuntuのlsがRust製に|監視スクリプトが壊れる3条件

毎日のように打っている ls や cat。その中身が、いつの間にか別のプログラムに入れ替わっていたら驚きませんか。しかも画面の見た目はほとんど同じなので、気づかないまま使っている人も多いはずです。

この記事では、UbuntuでLinuxの基本コマンドがRust製に置き換わった話を整理します。何が変わったのか、運用の現場でどこに影響が出るのか、そして今日できる確認方法までまとめます。

結論を先に言います。手で打つぶんにはほぼ困りません。注意が必要なのは、コマンドの出力やエラー文を文字として読み取っている自作スクリプトです。

目次

Rust製coreutilsとは?Ubuntuで入れ替わったコマンド

coreutils(コアユーティルズ)とは、ls や cat、chmod、du などの基本コマンドをまとめたパッケージのことです。これまでLinuxでは、GNUプロジェクトがC言語で書いたものが長く使われてきました。

Ubuntuはこれを、Rust(メモリの扱いを安全にしやすいプログラミング言語)で書き直された「uutils coreutils」に切り替えています。あわせて、管理者権限でコマンドを動かす sudo も、Rust製の「sudo-rs」に置き換わりました。

InfraAcademyの解説記事とUbuntu公式の発表によると、流れは次のとおりです。

  • 2025年10月: Ubuntu 25.10で、uutils coreutilsとsudo-rsを初めて既定にした
  • 2026年4月: Ubuntu 26.04 LTSでも既定に(長期サポート版では初めて)。ただし cp・mv・rm の3つはGNU版のまま残した
  • 2026年10月: Ubuntu 26.10で、残る3つもRust製へ移る予定

たとえるなら、社内で使う書類の書式はそのままに、印刷する会社だけが変わったような状態です。見た目は同じでも、細かい余白や注意書きの文面は少しずつ違うことがあります。

つまり、名前も使い方も同じまま、動いているプログラムだけが別物になった、というのが今回の変化です。

UbuntuがRust製coreutilsに切り替える理由

一番の理由は速さではなく、安全性と堅牢さです。

Ubuntuの開発元Canonicalの担当者が2025年3月に公開した計画では、速さよりも「堅牢さと安全性」が一番の魅力だと書かれています。Rustの仕組みがメモリの扱いの誤りを防ぎやすいためです。C言語では、確保した領域の外を読み書きするような誤りが脆弱性につながることがあります。すべての土台となるコマンドを安全にすれば、その上で動くシステム全体の信頼性も上がる、という考え方です。

一方で、書き直したばかりの実装には粗も出ます。Ubuntu公式の発表(2026年4月)によると、Canonicalはセキュリティ監査会社のZellicに点検を依頼し、2025年12月から2026年3月までの2回の監査で合計113件の問題が見つかりました。あわせて44件のCVE(公開された脆弱性の識別番号)が公開されています。その後もrust-coreutilsは、2026年5月の0.9.0、8月の0.10.0と、この種の問題への対策を続けています。

cp・mv・rm が後回しになったのも慎重さの表れです。理由はTOCTOU(確認してから実行するまでの一瞬のすき間を突かれる問題)が、この3つにまだ残っていたためと公式に説明されています。ファイルを消したり上書きしたりするコマンドほど、このすき間の影響が大きいからです。

長い目で見れば安全にするための移行ですが、途中の今は「新しい実装の癖」とつき合う時期だと考えるのが現実的です。

Rust製coreutilsで監視スクリプトが壊れる3つの条件

影響が出やすいのは、人が読むための文字を、機械に読ませている場所です。InfraAcademyの記事が注意点として挙げているのは1つ目(エラー文やヘルプの解析)です。2つ目と3つ目は、同じ型の落とし穴として筆者が運用の目線で付け足した確認点です。

  • エラー文やヘルプの文面を解析している: 「No such file」などの文言で分岐している処理
  • 標準出力を決まった形で読んでいる: ls -l や du の結果を、列の位置で切り出す監視スクリプト
  • 出力の並び順や数値の書き方を前提にしている: 容量の表記や桁の区切りをそのまま比べる設定

逆に、終了ステータス(コマンドが成功したら0、失敗したら0以外を返す値)だけで成否を判断しているなら、影響はかなり小さくなります。

Ubuntu 25.10・26.04 LTS・26.10でRust製コマンドへ移る流れと、自作スクリプトへの影響が出やすい3つの書き方、影響が小さい終了ステータスでの判断を並べた図
図: UbuntuのRust製コマンド移行と、スクリプトへの影響(Ubuntu公式の発表とInfraAcademyの解説記事をもとに筆者作成)

たとえば夜間のバッチで、du の出力を切り出してディスク使用量を監視しているとします。表記がわずかに変わっただけで数値の取り出しに失敗し、アラートが鳴らなくなるかもしれません。鳴るべきときに黙る監視は、うるさい監視より危険です。

なお2025年の計画の時点では、起動用のファイル(initramfs)を作り直す処理が使う cp -Z というオプションが未対応だった例も挙げられていました。こうした差は順次埋められていますが、「完全に同じ」と決めつけないことが大切です。

GNU製かRust製かを確かめる4つの手順

InfraAcademyの記事の確認コマンドを、上から順に試せる形に筆者が並べ直しました。

  1. ls --version | head -n 1 を打つ → 「uutils」と出ればRust製、「GNU coreutils」と出ればGNU製
  2. cp --version | head -n 1 を打つ → 26.04では、ここだけGNU製と出るのが正常
  3. sudo --version | head -n 1 を打つ → sudo-rsかどうかを確認する
  4. dpkg -l | grep -E 'coreutils|sudo' を打つ → 入っているパッケージ名を一覧で確かめる

もし問題が出たら、Ubuntu 26.04 LTSでは coreutils-from-uutils から coreutils-from-gnu というパッケージに切り替えてGNU製へ戻せます(Ubuntu公式の発表でも案内されています)。InfraAcademyの記事によると、sudoも従来版がパッケージとして残されています。ただし本番サーバーで勝手に入れ替えず、まず検証機で試し、手順を先輩と確認してから進めましょう。

確認は1分で終わります。担当しているサーバーの台数が多いなら、どのOSバージョンが混ざっているかを把握するきっかけにもなります。

運用・インフラ現場でRust製coreutils移行をどう活かすか(筆者の考察)

ここからは筆者の考えです。この移行は、1〜3年目の運用担当者にとって「自分の持ち場を棚卸しする良い口実」になると考えています。

理由は、コマンドの中身が入れ替わる機会はめったにないからです。普段は動いているスクリプトの中身を読む時間は取りにくいものです。しかし「OSを26.04に上げる前に、出力を読んでいる箇所を洗い出しておきます」と言えば、立派な業務になります。

具体的には、スクリプトの中で awk や cut を使ってコマンドの出力を切り出している行を探すのが第一歩です。見つけたら、検証機で旧OSと新OSの出力を並べて比べます。差が出た行だけメモしておけば、それがそのまま移行チェック表になります。

外から持ち込むコードの中身を確かめる姿勢は、curlからbashへ直流しは危ない理由でも取り上げました。土台のソフトが入れ替わるリスクはサプライチェーン攻撃の事例とも根っこが同じです。アラート対応の自動化は深夜アラートの一次調査をAIに任せる設計にまとめています。

「知らないうちに土台が変わる」ことに気づける人は、現場で重宝されます。今回のニュースは、その感覚をきたえる練習台としてちょうどよい題材です。

あわせて読みたい:AlmaLinux 9インストール手順|VirtualBoxで練習機を作る(Linuxを手元で練習する環境の作り方)

自分の担当サーバーがどのUbuntuのバージョンで動いているかは、コマンドで確かめられます。見分け方はLinux OS確認コマンド|バージョンとカーネルの見分け方を参考にしてください。

まとめ

  • Ubuntu 26.04 LTSでは、lsやcatなどがRust製のuutilsに、sudoがsudo-rsに置き換わった
  • 影響が出やすいのは、エラー文・出力の形・並び順や数値表記を文字として読むスクリプト
  • ls --version で実装を確かめられ、coreutils-from-gnu でGNU製に戻せる

まずは担当サーバーで ls --version を1回打ち、どちらの実装か確かめてみてください。

参考リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

インフラの運用・構築に10年以上携わり、AWS 認定8資格を持つ運営者です。いまは Claude Code などの AI ツールを日々の作業の自動化に使いながら、これから使う人のための教科書サイトを運営しています。

コメント

コメント一覧 (3件)

コメントする

目次