世界を動かす技術を、日本語で。

Debian技術委員会がsystemdの変更を覆す

2025年10月24日原文(lwn.net)

概要

  • Debian における /run/lockディレクトリ のパーミッション変更問題
  • systemd のアップデートが 既存ソフトウェア に影響
  • Debian PolicyFHS (Filesystem Hierarchy Standard)の遵守義務
  • Debian Technical Committee(TC) による介入と最終決定
  • 今後の 移行計画パッケージ管理者の対応

Debianにおける /run/lock ディレクトリ問題

  • Debianパッケージ管理者 はソフトウェア設定に裁量権を持つが、 Debian Policy に準拠する義務
  • systemd v258/run/lock のパーミッションが rootのみ書き込み可 に変更
  • これにより UUCPcu など、 /run/lock を利用するソフトが動作不能
  • /var/lock/run/lock へのシンボリックリンクであり、 FHS に準拠
  • systemd-tmpfiles が起動時に /run ディレクトリをtmpfsとして作成

FHSとその現状

  • FHS(Filesystem Hierarchy Standard)/var/lock の用途を規定
  • FHS 3.0 以降、ほぼ放置状態で最新化が進んでいない
  • systemd は独自に Linux Userspace API (UAPI) Group へファイル階層仕様を移譲
  • Fedora もFHSの後継仕様を模索中

systemd側の主張とDebian側の反応

  • systemd 開発者は /run/lockの全ユーザー書き込み可セキュリティリスク と判断
    • 任意プロセスが /run を埋め尽くし DoS攻撃 の温床となる可能性
  • systemd は「 下流ディストリビューションが必要なら独自対応を」と主張
  • Debian Policy はあくまで FHS準拠 を要求
  • Debianパッケージ管理者 がsystemdの変更によるバグを報告し議論が発生

Debian Technical Committee(TC)の介入

  • systemdバグWONTFIX でクローズされたため、 TC が対応を協議
  • Debian Policy に従い、 systemdパッケージが/var/lockを適切なパーミッションで提供 するよう要求
  • TC投票 にて「 影響を受けるソフトウェアの移行が完了するまでsystemd側の変更を維持」が採択
    • これにより Debian では従来通り /var/lock が利用可能となる

今後の課題と対応

  • UUCPスタイルのロック運用 は時代遅れだが、 Debian では現状維持が決定
  • Fedoralockdev パッチを適用し、 /run/lock の全ユーザー書き込みを廃止
  • Debianでも Fedora方式の導入 が検討可能だが、他パッケージへの影響は未解決
  • パッケージ管理者間の合意形成 が重要課題

サブスクリプションへのお願い

  • LWN.net の継続的な運営には サブスクリプション が不可欠
  • 継続的な情報提供のため、 購読の検討 を推奨

Hackerたちの意見

FHS 3.0は明らかに役目を終えようとしている、もしくはすでに終わっているね。面白い見解だと思う。FHSはパッケージャーやシステム管理者にとって、互いに足を踏まないようにするために非常に役立つと思う。期待値を設定して、不要な驚きを防ぐのに役立つからね。特定のFHSルールが古くなっていたり、有害であったりすることがあっても、FHS全体が役に立たなくなったわけではないよ。

ただ、標準は二面性がありますよね。みんなが「最も正しい」答えに同意するのには素晴らしいですが、進化を止めてしまうこともあります。あなたの標準が現代のユースケースをサポートしないとどうなるのでしょうか?例えば、現代のセキュリティプラクティスと真っ向から対立していたら?FHSは何年も変わっていません。その間に、サンドボックス、コンテナ、新しいパッケージスキームなどが登場しているのに、FHSはそれについて何と言っているのでしょうか?

うん、でもそうじゃない部分もあるよね。どのディストロも独自のファイルシステムレイアウト標準を定義してるし、確かに最初はFHS 3.0の共通の祖先から始まったけど、それ以降はいろいろな方向に分かれてる。最近の競合する標準もそれを修正しようとしてるし(主にUAPIグループね)。それに、UAPIがsystemdのアイデアを他に押し付ける手段だって言う人もいるけど、10年以上も標準を更新しないで、他の人がその作業を引き継ぐのも嫌なら、どうして自分たちの標準を作ることに文句を言えるのか、わからないな。 [1]: もっと正確には20年だけど、10年前にLinux Foundationがその所有権を引き継いだんだよね。

Debianのsystemdメンテイナー、ルカ・ボッカッシが最近、いくつかの問題や望ましくない破損を「ニッチなケース」として押し通して、個人的にはDebianに期待することとは真逆のやり方だと思う。彼らがアプローチを変えてくれることを願ってる。

これは典型的なsystemdメンテナの行動だね。Poetteringの「私はあまり問題だとは思っていない」は伝説だよ: https://github.com/systemd/systemd/issues/5644

そのような却下へのリンク: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1112535#64

Devuanっていうのがあるよ。Debianだけどsystemdなしのやつ。個人的には「ネイティブ」に非systemdのディストロの方が一貫性があると思うけど、Guixで幸せを見つけたよ。

誰か、systemdの開発者たちが自分たちの信念を持って、みんなを自分たちのアイデアで脅している理由を教えてくれない?

同じ記事を読んだの? * 古い動作のオプションがあるよ。 * それはセキュリティの問題で、代わりにより良い解決策が存在する。 * FHSはメンテナンスされていない。関係者全員が、問題を修正するアプリケーションの更新を望んでいると思う。Debianは今のところ、ユーザーの信頼性を選んでいるから、彼らのミッションステートメントに合っている。Archでは、/run/lockはスーパーユーザーだけが書き込み可能で、セキュリティが向上している。ユーザーとしては、信頼性とセキュリティを重視していて、レガシーツールが使える状態であることを大切にしている(時にはデフォルトで、時にはスイッチで)。

彼らのやり方は最初からそうだったし、彼らにとってうまくいっている戦術を変える理由はないよね。systemdの中心的な問題は、彼らがあなたが自分のやり方で進めるのを許さず、彼らのルールに従わせようとすることだと思う。

この場合、上流のメンテイナーの反応は正当だと思う。--「上流のsystemdはXをする、やりたいディストロはYをしても自由だ」-- 逆のことを考えてみて。もしsystemdが書き込み可能な/run/lockを必要とするなら、安全を重視したいディストロは本当にできなくなるか、もっと侵入的なパッチを実装しなければならないだろう。外から見ると、これはDebianのsystemdパッケージメンテイナーがDebianのルールに従っていない失敗のように見える。(ただ、私はそのコミュニティの一員ではないので、知らない文化的な期待があるかもしれないことは認識している。)

愚痴を言う前にこれだけは言わせて:ハイパーバイザーやVM、非systemdディストロ、Kubernetesを最小限の実行ファイルで動かすために作られたTalosみたいなミニマルな不変Linuxディストロ、OCIコンテナのおかげで、Linuxスタックでもsystemdから抜け出す本当の方法があるのはありがたい。もっと多くの人が再び100% systemdフリーを目指すべきだと思う。 > 誰か教えてくれない?systemdの開発者たちが自分たちの考えを振りかざしてみんなをいじめる理由は?目標はLinuxを支配することだからだよ。だからsystemdはPID1なんだ。だからPoetteringはMicrosoftで働いてる。真の疑問は、あの超複雑なxzバックドアの試みが、なぜsystemdを持っているLinuxシステムでしか機能しなかったのかってこと。人々は「でもこれはこれで、xzがOpenSSHによって読み込まれるようにしたからで、systemdとは関係ない」と言って犬を振り回そうとするだろう。でも、すべてはsystemdに関係してる。もう一つの疑問は、今日、systemdを持つシステムでどれだけのバックドアが稼働しているのかってこと。systemdはMicrosoftレベルの肥大化で、PID1として動いていて、Linuxディストロのあちこちに触手を広げているのは間違いなく意図的だ。Poetteringは本当に耐え難いいじめっ子だね。TFAから: > じゃあ、今後どうすればいいと思う?Debianのポリシーを変更する(#1111839で求められている通り)、systemdの変更を元に戻す、Debian全体の解決策を見つける、または各パッケージメンテナが自分の解決策を実装するのを許す?私はDebianがsystemdを一度でいいから完全に捨てるべきだと思う。Debianはまだsystemdフリーにできるけど、面倒なんだよね。もう一度Debianをsystemdフリーにしてほしい。ちなみに、私はVMでsystemdなしのディストロを動かして、コンテナでsystemdに中指を立ててるよ。ProxmoxをFreeBSDのbhyveハイパーバイザーに切り替えるのが待ちきれない(時間を見つけないといけないけど)。でも何よりも、systemdなしのハイパーバイザーLinux、例えばProxmoxが出てくる日が待ち遠しい。もうすぐ来るし、「Dockerを使わずにsystemdを使え」みたいなことを書く人たちは勘違いしてる。私にとってsystemdはLinuxが象徴するものの対極だ。Debianがいつかsystemdを完全に捨てるくらい怒ってくれることを願ってる。P.S: 私のマシンの一つはこれを動かしてる: https://www.devuan.org/ で、正直言って全然問題ないよ。だから、systemdなしのディストロやBSDを使ってるみんなに力を!

Hacker Newsで議論の続きを見る