過去問ドリル

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

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

Debian 12で cgroup-tools パッケージ(libcgroup)のコマンドを使い、メモリの上限を設定したcgroup limited を cgcreate と cgset で用意した。すでに動作中のPID 4321のプロセスを、再起動させずにこのcgroupへ移したい。コマンドとして適切なものはどれか。

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

正解:C

解説

libcgroup のコマンドでは、cgcreate でcgroupを作り、cgset で memory.max などの制限値を設定し、cgclassify で動作中のプロセスをPIDで指定してcgroupへ移します。これからコマンドを起動する場合は cgexec を使い、そのコマンドを最初から指定したcgroupの中で実行させます。不要になったcgroupは cgdelete で削除します。cgclassify で移したプロセスには、移した時点から移動先のcgroupの制限が適用されます。

選択肢ごとの解説

  • A誤り。cgexec は、指定したcgroupの中で新しくコマンドを起動するためのもので、この指定では 4321 という名前のコマンドを実行しようとします。
  • B誤り。cgcreate はcgroupを新しく作成するコマンドで、既存のプロセスをcgroupへ移す機能はありません。
  • C正しい。cgclassify は、動作中のプロセスをPIDで指定して、指定したcgroupへ移します。
  • D誤り。cgdelete はcgroupを削除するコマンドで、プロセスをcgroupへ移す用途には使えません。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く