LinuCレベル3 セキュリティスペシャリスト システム保護と監査 問17
システム保護と監査/カーネルセキュリティとシステムリソース保護/etc/security/limits.conf に次の2行を記述した。この設定の動作として適切なものはどれか。 @dev soft nofile 1024 @dev hard nofile 4096
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「システム保護と監査」に対応。実際の試験問題ではありません)
- Aユーザー名がdevのユーザーだけに適用され、同時に開けるファイル数が常に4096に固定されて、本人は値を変えられない
- Bdevグループのユーザーはログイン時に開けるファイル数が1024に制限され、ulimit -nで4096までは自分で引き上げられる
- CUser=に指定したユーザーがdevグループに属していれば、systemdが起動するサービスのプロセスにも同じ上限が適用される
- D設定を反映するにはsysctl -pの実行が必要で、実行した時点で動作中のすべてのプロセスのファイル数の上限が変わる
正解:B
解説
limits.conf は pam_limits モジュールが読み込む設定で、ログインなどのPAMセッションの開始時に資源の上限を設定します。先頭の「@」はグループ名を表し、soft は実際に適用される値、hard は一般ユーザーが引き上げられる上限です。一般ユーザーは ulimit -n でソフト制限をハード制限の値まで上げられますが、ハード制限は超えられません。systemdが起動するサービスは、PAMName= を指定しない限りPAMのセッションを経由しないため、LimitNOFILE= 等をユニットファイルで指定します。
選択肢ごとの解説
- A誤り。「@」はグループを表す記号で、ソフト制限はハード制限の範囲内なら本人がulimitで変更できます。
- B正しい。ソフト制限1024がログイン時に適用され、本人がハード制限の4096まで引き上げられます。
- C誤り。limits.conf はPAMのセッションで適用されるため、systemdのサービスには効かず、LimitNOFILE= 等で指定します。
- D誤り。limits.conf はsysctlの設定ではなく、次にPAMのセッションが開始されたときに、そのセッションのプロセスに適用されます。