LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問23
アクセスおよび権限制御の強化/AppArmor による強制アクセス制御AppArmorのプロファイルで、ディレクトリ /srv/data/ 配下にあるファイルを、サブディレクトリの中のものも含めてすべて読み取れるようにしたい。記述する規則として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)
- A/srv/data/** r,
- B/srv/data/* r,
- C/srv/data/ r,
- D/srv/data/*/ r,
正解:A
解説
AppArmorのパス規則では、* は「/」を含まない1階層分の任意の文字列に、** は「/」を含む任意の文字列に一致します。そのため /srv/data/** はサブディレクトリを何階層たどった先のファイルにも一致します。末尾が「/」の規則はディレクトリそのものに一致し、ディレクトリの一覧の読み取りを表します。AppArmorはファイルのラベルではなくパス名で判定するため、規則のパスの書き方がそのまま制御範囲になります。
選択肢ごとの解説
- A正しい。** は「/」をまたいで一致するため、サブディレクトリ内を含む /srv/data/ 配下のすべてのファイルが対象になります。
- B誤り。* は「/」をまたがないため、/srv/data/ の直下のファイルだけが対象で、サブディレクトリの中のファイルは読めません。
- C誤り。末尾が「/」の規則はディレクトリ /srv/data/ そのものに一致し、一覧の読み取りを許可するだけでファイルは読めません。
- D誤り。/srv/data/*/ は直下のサブディレクトリそのものに一致する規則で、その中のファイルの読み取りは許可されません。