LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問41
アクセスおよび権限制御の強化/Linux Access Control Lists によるアクセス制御ファイル /srv/data/report.txt にアクセスACLが設定されているかを、getfaclを使わず拡張属性として直接確認したい。アクセスACLが格納される拡張属性 system.posix_acl_access だけを取得して表示するコマンドはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)
- Agetfattr -n system.posix_acl_access /srv/data/report.txt
- Bgetfattr -d /srv/data/report.txt
- Csetfattr --get=system.posix_acl_access /srv/data/report.txt
- Dattr -g posix_acl_access /srv/data/report.txt
正解:A
解説
アクセスACLはPOSIX規格で定められた拡張属性 system.posix_acl_access に格納されており、getfattr -n 属性名 ファイル名 で特定の属性だけを表示できます。getfattr -d -m - は全名前空間の全属性をダンプしますが、1つの属性だけを取得するには -n オプションを使います。デフォルトACLは system.posix_acl_default に別途保存されます。setfattr は属性の書き込みに使うコマンドであり、読み取り機能はありません。
選択肢ごとの解説
- A正しい。getfattr -n は指定した名前の拡張属性だけを取得して表示する。アクセスACLは system.posix_acl_access に格納されており、このコマンドで直接読み取れる。
- B誤り。getfattr -d はデフォルトで user.* 名前空間の属性だけをダンプするため、system.posix_acl_access のような system.* 名前空間の属性は表示されない。system 名前空間を含む全属性を確認するには getfattr -d -m - を使い、特定の属性だけを取得するには getfattr -n 属性名 を使う。
- C誤り。setfattr は拡張属性を設定・削除するコマンドであり、値を読み取る機能はない。読み取りには getfattr を使う。
- D誤り。attr コマンドは user.* 名前空間を扱うことが多く、system.posix_acl_access のような system.* 名前空間の属性を -g で直接取得するためのコマンドではない。