過去問ドリル

LinuCレベル3 セキュリティスペシャリスト システム保護と監査 問25

システム保護と監査/カーネルセキュリティとシステムリソース保護

シェルスクリプトの動作確認で、スクリプトが変更するホスト名が本番システムに影響しないよう、独立したUTS名前空間の中で作業したい。使用するコマンドとして適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「システム保護と監査」に対応。実際の試験問題ではありません)

正解:B

解説

`unshare --uts` は現在のプロセスから独立した新しいUTS名前空間(ホスト名とNISドメイン名を管理する名前空間)を作成し、その中でコマンドを実行します。新しい名前空間内で hostname コマンドを使ってホスト名を変更しても、元のシステムには影響しません。`nsenter` は既存のプロセスが持つ名前空間に入るコマンドで、新しい名前空間を作成するものではなく、対象プロセスのPIDも必要です。`chroot` はルートディレクトリを変更するファイルシステム分離の手段で、ホスト名の分離はできません。`cgcreate/cgclassify` は cgroup によるリソース制限の設定で、UTS 名前空間の分離とは無関係です。

選択肢ごとの解説

  • A誤り。nsenter は既存プロセスの名前空間に入るコマンドであり、接続先の -t <PID> が必要である。新しいUTS名前空間を作成するには unshare を使う。
  • B正しい。unshare --uts で現在のプロセスから独立した新しいUTS名前空間を作成し、その中で /bin/bash を起動する。新名前空間内でホスト名を変更してもホストシステムには影響しない。
  • C誤り。chroot はルートディレクトリを変更するファイルシステム分離の手段であり、UTS名前空間(ホスト名)の分離はできない。
  • D誤り。cgcreate と cgclassify は cgroup によるリソース(メモリ・CPU等)の制限に使うコマンドであり、UTS名前空間の分離とは無関係である。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く