resolute(Ubuntu 26.04)の開発; Snapshot4のリリースと混乱
resoluteのSnapshot 4がリリースされました。SnapshotはQuesting(25.10)から開始された試みで、「 リリース直前までの各月末に、リリース版と同じプロセスで生成されるISOイメージを作ってみる」というものです。Snapshotはあくまでもリリースプロセスの強化やデバッグのためのものであり、いわゆる「実用」のために用いるべきではありません。
……というのが「いつもの」説明なのですが、resoluteのSnapshot 4はバグ 込みでのリリースとなっており、絶妙な混乱 が発生しています。
なお、少なくともこの問題は3月4日のISOでは解決されており、リリースに直接影響を与えるものではありません(とはいえ、なかなかに予想外の展開ではあります) 。
またresoluteにおいて、sudo-rsにおける挙動の変更が行われています。Unix/LinuxのCLIにおける権限昇格、つまりsu/sudo文脈では「パスワード入力は表示しない」というものが採用されてきました。『 *』のようなマスクされた文字すら表示されず、とにかく何も表示されない、というものです。これによって、入力時に画面を覗かれていても、パスワードの文字数を類推されずに済むようになります(キーボードを覗き込まれることには無力に近しいのですが、対策としては「超高速で入力する」「 必要に応じてダミー入力を混ぜてこっそりバックスペース等で削除する」といったものがあります) 。
エコーバックすら表示しない挙動は「伝統的」ではあるものの、GUIのたぐいではほとんど見かけることがない振る舞いです。結果として「パスワードを入力しても反映されない」という混乱が生じる可能性がありました。
sudo-rsではこの挙動について、「 デフォルトでは表示するように変更する」( pwfeedbackオプションを有効にする)という方向で議論がまとまって います。この挙動変更についてUbuntu側でも一定の議論が行われた後 、「 sudo-rsのデフォルト設定を採用する」という方向に落ち着いています。言い換えるとresoluteでは(そして、おそらくそれ以降のUbuntuにおいても)「 sudo実行時のパスワード入力において、『 *』がエコーバックされる」という動作が採用されることになります。
また、オフィシャル壁紙や壁紙コンテストの結果発表 が行われ、「 見た目」や振る舞いについても徐々に固まりつつあると言えそうです。
こうした動きの横で、汎用のOIDCブローカーへの対応 が行われています。これにより、Ubuntuへのログインに、Entra IDやGoogle IAM以外のOIDCプロバイダーを利用できるようになります。
カリフォルニア州 AB1043への対応の検討
米国カリフォルニア州においては、Assembly Bill No. 1043 (AB1043)という、「 子供のオンラインにおける安全」を保護するための法律が存在します。
施行は2027年からなのですが、各種OS・アプリケーション業界では一定の話題になっています。これはOSやアプリケーションストアの提供者に、「 ユーザーアカウント設定時に年齢情報を取得し、それをアプリケーション側に適切な形で引き渡せること」を強制するもので、「 デバイスレベルでこの振る舞いを保証する必要がある」強制力を持ちます。
これによって「未成年者が不適切なオンラインサービスにアクセスしたり、不当な支払い義務を負うことを防ぐことができる」という主旨であり、未成年者を保護する、という意味では相応の意味を持つ法律ということができるでしょう。
問題となるのは、この法律の施行にあわせて、2027年7月1日までに年齢入力UIを提供しなくてはならない、という点で、さらに「オープンソースのソフトウェアであっても例外ではない」という縛りとともに、業界全体、特にLinuxディストリビューション方面では大きな問題となっています。
Ubuntuでもこの問題についての議論 が開始されており、ディストリビューション共通で利用できるデザインを採用するかどうか検討するという動きが開始されています。
その他のニュース
セキュアブートで利用されるMicrosoft 3rd Party UEFI CA 2011が2026年7月に失効することから、fwupdをどのようにアップデートするべきかという議論 が行われています。現時点では「fwupd 2.0を素直にバックポートすることは困難なので、Snap形式で提供する」という方向になりそうです。
注目すべきセキュリティー的な視点: アップデートと再起動の理解
システムの長期的な運用においては、「 どのようにシステムを再起動していくか」という計画が不可欠です。
Ubuntuのパッケージをアップデートした場合、ときに「再起動が必要です」といった通知や出力が行われることがあります。これはneedrestart パッケージや、それぞれの更新パッケージ側で制御されるフックで、「 どうしても再起動を行わないと、システムとして新しい実行ファイルが読み込まれない場合」に利用されます。
この場合の「再起動」は、特定のプロセス単位であったり、あるいはデスクトップセッション、システム全体(つまりOSとしての)の再起動であったりと様々です。パッケージの更新をunattended-upgradesを用いて自動化するにしても、これらの再起動の原因を適切に検討しておく必要があります。
いわゆるデスクトップ環境(つまりノートPCを含む「対話的なPC」環境)を利用している場合、「 再起動しないとアップデートされない」という現象に遭遇することが多々あります。この現象は要するに「デスクトップ環境を構成しているファイルそのもの」を更新するには再起動するしかない、という話なのですが、OSごとに設計思想がそれなりに異なっており、複数のメカニズムが存在します。
Ubuntuを含むLinux環境においては、アップデートを適用する場合に「とりあえずファイルを置き換える」「 既存のファイルはメモリ上に残す」という動作を行います。これは、Unix/Linux環境で利用しているファイルシステムが、「 DELETE_ON_CLOSE」と呼ばれる振る舞いを前提としているためです。DELTE_ON_CLOSEは(いろいろと細かい挙動を省略すると)「 利用中のファイルが上書きされた場合、ファイルがメモリ上にロードされている限りは仮の実体を残す」という動作です。
つまり、たとえば「/usr/share/lib/yoku-tukawareru-lib」というファイルが新しいバージョンで置き換えられる場合、このライブラリを読み込んでいるプロセスが存在しようがしまいが、とりあえずこのファイルそのものは上書きしてしまいます。「 もとのファイル」はある種の幽霊のような状態としてメモリ上に保持され、このファイルを使っているプロセスが存在しなくなった時点で(あるいはシステムが再起動されれば)消滅します。
この振る舞いは「とにかくファイルを更新する」という意味では有効なものの、セキュリティアップデートのような文脈でライブラリを置き換える場合においては、「 アップデートしたつもりなのに、メモリ上に古いバージョンのものが残っている」という状態を引き起こします。
この問題を解決するために、Ubuntuのパッケージ管理システムの一部として、前述のneedrestartが存在します。needrestartは、「 DELETE_ON_CLOSE状態のライブラリを読み込んでいるプロセス」[1] を列挙します。これによって「再起動しないとメモリ上にあるライブラリが古いままである」ということを検出し、「 古いライブラリを読み込んでいるプロセス」の再起動を実現しています[2] 。
この挙動[3] をどう扱うかには、単純な方法であればふたつの戦略があります。ひとつは「とにかくdeleted状態のものを見つけたら再起動できるようにシステムに冗長性を持たせ、unattended-upgradesに更新を任せる」です。「 再起動のあいだはシステムは応答できない」ということを前提として、システムとしての冗長性やHAProxyなどを用いた外部的な冗長性を用いてシステムの応答性を維持する、というアプローチです。
別の戦略としては、「 そもそもこの問題に遭遇しないようにシステムを構成する」というものがあります。アプリケーションを完全にDockerベースで構築し、アプリケーションとしてはあくまでコンテナの単位で扱い、そしてDockerホストについては「アップデートが必要になった時点で能動的に破棄して置き換える」という方法論です。冗長性はk8sやロードバランサーのレベルで維持します。
……というようなアプローチが整理されていない場合、システムとしてはリスクがある状態と言えるでしょう。
[1] Linuxにおいては、各プロセスごとの「/proc/${PID}/maps」から「読み込まれているライブラリ」を列挙できます。ここに「幽霊」状態のファイルが読み込まれていると、「 deletedフラグがついているファイル」として検出できる、という仕組みです。
[2] Windowsはこれとまったく異なる設計を採用しており、「 排他的にロックされたファイルは更新できない」というポリシーになっています。かわりに、「 PendingFileRenameOperations」といった定義された遅延処理 が準備されており、「 ロックされたファイルについては、次のシステム更新時に置き換える」というアプローチになっています。