LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問2
アクセスおよび権限制御の強化/Linux Access Control Lists によるアクセス制御ディレクトリ /srv/share に setfacl -d -m g:dev:rwx /srv/share を実行してデフォルトACLを設定した。その後の動作の説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)
- A/srv/share に既に存在するファイルにも、同じエントリがアクセスACLとして自動的に追加される
- BデフォルトACLは通常ファイルにも設定でき、そのファイルをコピーした先にエントリが引き継がれる
- C新規ファイルの権限はデフォルトACLより umask が優先され、umask で外れた権限はACLでも戻らない
- D新しく作るサブディレクトリは、このエントリをアクセスACLとデフォルトACLの両方として受け継ぐ
正解: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としても継承するため、さらに下の階層にも同じ規則が伝わります。