過去問ドリル

LinuCレベル3 セキュリティスペシャリスト 堅牢なコンテナ設計 問12

堅牢なコンテナ設計/Rootless モード

RootlessモードのDockerをsystemdのユーザーサービスとして動かしている。ユーザーaliceがSSHからログアウトした後もコンテナが停止せずに動き続けるようにするコマンドとして適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「堅牢なコンテナ設計」に対応。実際の試験問題ではありません)

正解:A

解説

loginctl enable-lingerを実行すると、指定したユーザーのsystemd --user(ユーザーマネージャ)がログインセッションの有無にかかわらず起動し続けます。既定ではユーザーの最後のログインセッションが終了するとユーザーマネージャが停止し、ユーザーサービスとして動くRootless Dockerのデーモンやコンテナも停止します。systemctl --user enableはログイン時にサービスを自動起動する設定ですが、lingerが無ければログアウト後にサービスごと停止します。daemon-reloadはユニットファイルの再読み込みで、ログアウト後の動作には影響しません。

選択肢ごとの解説

  • A正しい。enable-lingerにより、ユーザーのログインセッションが無くなってもsystemdのユーザーマネージャが動き続け、ユーザーサービスやコンテナが停止しなくなる。
  • B誤り。systemctl --user enableはログイン時にサービスを自動起動する設定であり、ログアウト後にサービスを維持する機能ではない。lingerが無ければログアウト時にユーザーマネージャごと停止する。
  • C誤り。daemon-reloadはユニットファイルの変更をsystemdに認識させるコマンドであり、ログアウト後のサービス維持とは関係がない。
  • D誤り。XDG_RUNTIME_DIRの設定はDockerのソケットパスなどの実行時ディレクトリを指定するもので、ログアウト後にサービスを維持する機能ではない。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く