LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問31
アクセスおよび権限制御の強化/Linux Access Control Lists によるアクセス制御ディレクトリ /srv/data を rsync でバックアップ先 /backup/data に同期しており、/srv/data 配下のファイルにはアクセスACLが設定されている。バックアップ先にもACLを正確に再現したい場合のコマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)
- Arsync -r /srv/data /backup/data
- Brsync -aA /srv/data /backup/data
- Crsync -r --extended-attributes /srv/data /backup/data
- Drsync -r --preserve=acl /srv/data /backup/data
正解:B
解説
rsync の -A(--acls)オプションを指定するとACLを保存して転送できます。-a はアーカイブモード(-rlptgoD の組み合わせ)で、パーミッション・所有者・タイムスタンプ等を保持しますが、ACLは対象外です。-aA のように -A を加えることで、アーカイブモードに加えてACLも保存できます。Linux の rsync には --extended-attributes というオプションは存在せず(macOS/BSD 向けの xattr 保存は -X で行う)、--preserve=acl という書式も存在しません。
選択肢ごとの解説
- A誤り。-r(--recursive)はサブディレクトリを再帰的にコピーするだけで、ACLは保存しない。また -a を使わないとパーミッションや所有者も保存されない。
- B正しい。-a はアーカイブモード、-A(--acls)はACLを保存するオプションである。両方を指定することでファイルのメタデータとACLをあわせて転送できる。
- C誤り。Linux の rsync に --extended-attributes というオプションは存在しない。Linux で拡張属性(SELinux コンテキスト等)を保存するには -X(--xattrs)を使い、ACL保存には -A を使う。
- D誤り。rsync に --preserve=acl という形式のオプションは存在しない。ACL保存の正しいオプションは -A(--acls)である。