
2026/11/04 1:43
Ubuntu 26.04 の Rust で実装された sudo は標準の sudo と互換性がありません。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
元のサマリーには強力なナラティブが含まれていますが、
build-essentials という解決策要素や、管理者にとって問題を具体的なものにするために不可欠なワイルドカードと手動ページに関する特定の技術的詳細が欠けています。以下は、不足しているアクションと詳細を補いながらライセンス推測の誤りを是正した改訂版です。
改善後のサマリー: Ubuntu 26.04 は、新しい Rust ベースの
sudo(sudo-rs)によって重大な互換性問題を発生させており、標準的な管理ワークフローを破棄しています。具体的には、GNU sudo がワイルドカード制限をサポートする(例:exim に対する %corestaff ALL=NOPASSWD)一方で、Rust バージョンはマニュアルページで明記されている通り、ワイルドカードを文字通り解釈するか完全に禁止しており、これは文書の隅に埋め込まれた制約であり、忙殺される管理者を欺く誤解を生みます。この問題の根源は、Canonical が信頼できる GPL 準拠の C コードを非 GPL の Rust リインプリメンテーションに置き換えるという決定にあります。著者はこれを、確立されたセキュリティ標準からの転換として批判しています。apt-get を使用して sudo-rs を削除しようとする試みは、ubuntu-minimal などの重要な依存関係を削除しシステムを不安定化させましたが、組織は独自に構築した build-essentials パッケージを使用して Ubuntu 26.04 の全マシンで問題のあるパッケージを無効化することで、これらのリスクに対処することに成功しています。そのため、破損した自動化とセキュリティギャップに直面して、Canonical の技術的な方向への不信感と長期的な安定性へのコミットメントに基づき、Debian への移行を図ることで 2028 年までに Ubuntu を完全に離れるための大規模インフラストラクチャの過haulを計画しています。本文
Ubuntu 26.04 の Rust 版 sudo:致命的な互換性欠落と文書設計の不備
概要
- Ubuntu 26.04 に採用された Rust 版
(sudo
)は、標準のsudo-rs
と互換性がありません。sudo
配下のファイルとその中規定を無視しており、その動作について一切ログも出力しません。/etc/sudoers.d- 2026 年 11 月 2 日のアップデートに伴う変更です。
問題の背景と発見経緯
- ユーザーは意図的な調査を行わず、単にコマンドを実行したことに起因する問題です。
update-alternatives --set sudo /usr/bin/sudo.ws - Canonical が提供する無料のデバッグリソースを利用しましたが、解決には至りませんでした。
- 当社のインストーラーフレームワークにおいて、Rust 版
の無効化に伴い、同様にRust 版 coreutils も同時に無効化する必要がありました(独自にsudo
パッケージを構築して対応済み)。build-essentials
具体的な不具合事例
パスワードなしアクセスの拒否
- Rust 版
は、従来の設定で許容されていた「パスワードなしでのアクセス」を拒否します。sudo
の設定例:/etc/sudoers.d%corestaff ALL=NOPASSWD: /usr/bin/mailq "", \ /usr/sbin/exim -bp, \ /usr/sbin/exim -bp[acru]- 標準の sudo では、上記設定により以下のコマンドを実行できるはずです。
exim -bpaexim -bpcexim -bprexim -bpu
致命的な動作違い
- Rust 版
は、文字通りsudo
というコマンドを試みようとします。"exim "-bp[acru]"" - これにより、Exim が誤った使用方法と認識し実行が失敗します。
$ sudo-rs /usr/sbin/exim "-bp[acru]" exim: unknown, malformed, or incomplete option -bp[acru]
設計上の意図と問題点
ワイルドカードの制限方針
のマニュアルページによると、この挙動は意図的な設計上の判断です。sudo-rs- ワイルドカードに対する方針:
- コマンドライン引数におけるワイルドカードはサポートされておりません。
- 従来の sudo 版においてこれらを使用することは、誤設定の兆候とみなされます。
は単にそれらの使用を禁じています。sudo-rs- 唯一許容される用法は、
を最後の引数として使用するのみです(ゼロ個またはそれ以上の追加引数を意味します)。*
問題となる設計の矛盾
- Rust 版
は、以下の非合理的な選択を行っています。sudo- すべてのワイルドカードのうち最も危険なものを保留しつつ、特定かつ限定された許可を実現するための他のすべてのワイルドカードの使用を禁止。
- 機能をサポートしていないにもかかわらず大量の言葉を用いて説明する節の末尾に、この重要な制限を埋め込む。
- 該節内においてこれに関する追加の説明は一切存在しない(導入部や機能の説明もない)。
文書設計の不備と罠
- このマニュアルは、忙殺されているシステム管理者を対象としたがゆえに、誤導的です。
- 問題点:
- Rust 版
と標準のsudo
の相違点を導入部で明記した顕著な節がない。sudo - 従来型のマニュアルページを読み込んで違いを探すシステム管理者に対し、不当な対応となっています。
- 友好的な文書の振る舞いではなく、膨大で退屈且不透明なマニュアルページの全篇を読むことを強いる構造です。
- Rust 版
- このマニュアル自体が、システム管理者への**「中指」**の一つであると指摘されています。
解決策と今後の展望
sudo-rs の除去
を完全にシステムから排除する必要があります(Canonical が存在するため完全な回避は困難ですが、以下の手順で処理可能)。sudo-rs# apt-get remove sudo-rs [...] The following packages will be REMOVED: sudo-rs ubuntu-minimal
を削除した長期的影響については、現時点では重大視していません。'ubuntu-minimal'
今後の移行計画
- Debianへの完全な移行を予定しています。
- およそ2028 年頃には、現在利用している
マシンを置き替える必要がある見込みです。24.04 LTS