LinuCレベル3 セキュリティスペシャリスト システム保護と監査 問21
システム保護と監査/カーネルセキュリティとシステムリソース保護Debian 12で cgroup-tools パッケージ(libcgroup)のコマンドを使い、メモリの上限を設定したcgroup limited を cgcreate と cgset で用意した。すでに動作中のPID 4321のプロセスを、再起動させずにこのcgroupへ移したい。コマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「システム保護と監査」に対応。実際の試験問題ではありません)
- Acgexec -g memory:limited 4321
- Bcgcreate -g memory:limited
- Ccgclassify -g memory:limited 4321
- Dcgdelete -g memory:limited
正解: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へ移す用途には使えません。