過去問ドリル

LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問2

アクセスおよび権限制御の強化/Linux Access Control Lists によるアクセス制御

ディレクトリ /srv/share に setfacl -d -m g:dev:rwx /srv/share を実行してデフォルトACLを設定した。その後の動作の説明として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)

正解:D

解説

デフォルトACLはディレクトリにだけ設定でき、その中に新しく作成されるオブジェクトの初期ACLを決めます。新規ファイルはデフォルトACLをアクセスACLとして受け継ぎ、新規サブディレクトリはアクセスACLに加えてデフォルトACLとしても受け継ぐため、階層の下へ設定が伝わっていきます。親ディレクトリにデフォルトACLがある場合、新規オブジェクトの権限はデフォルトACLと作成時のmode引数から決まり、umaskは適用されません。既存ファイルには影響しないので、既存分にも適用するにはsetfacl -Rを併用します。

選択肢ごとの解説

  • A誤り。デフォルトACLは設定後に新しく作られるオブジェクトにだけ効きます。既存のファイルに反映するには、setfacl -R -m でアクセスACLを別途設定します。
  • B誤り。デフォルトACLはディレクトリにだけ設定できます。通常ファイルに -d を指定するとエラーになります。
  • C誤り。親ディレクトリにデフォルトACLがある場合、新規オブジェクトの権限はデフォルトACLとmode引数で決まり、umaskは使われません。umaskが効くのはデフォルトACLが無いときです。
  • D正しい。サブディレクトリはデフォルトACLをアクセスACLとしてもデフォルトACLとしても継承するため、さらに下の階層にも同じ規則が伝わります。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く