LinuCレベル3 3SS試験の例題と解説
主題3SS.01アクセスおよび権限制御の強化
1.1Linux Access Control Listsによるアクセス制御
LinuCレベル3 セキュリティスペシャリスト試験の出題範囲から「1.1 Linux Access Control Listsによるアクセス制御」についての例題を解いてみます。
このテーマは、Linuxの権限管理機能であるACLsに関する内容が含まれます。セキュアなシステム構築に役に立つ知識ですので、しっかりと理解しておきましょう。
LinuCレベル3 セキュリティスペシャリスト 3SS試験 出題範囲
例題
Linuxのディレクトリに対してACL(Access Control List)を設定し、そのディレクトリ内に新しく作成されるファイルやサブディレクトリに対して、自動的に特定のユーザー(user01)の読込権限を継承させたい場合、最も適切なコマンド操作はどれですか。
- setfacl -m u:user01:r-x /project/data を実行する
- setfacl -m d:u:user01:r /project/data を実行する
- setfattr -n user.acl -v "u:user01:r" /project/data を実行する
- getfacl /project/data | setfacl --restore=- を実行する
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「2. setfacl -m d:u:user01:r /project/data を実行する」です。
ディレクトリ内に作成される新しいオブジェクトに権限を継承させるには、ディレクトリに対してデフォルトACLを設定する必要があります。setfaclコマンドで設定値の先頭に d:(または default:)を付与するか、-dオプションを使用することで、デフォルトACLを定義できます。これにより、今後作成されるファイルにはuser01の読込権限が自動的に適用されます。
また、不正解の選択肢ですが、正しくは以下となります。
選択肢1:
これはアクセスACLを設定するコマンドです。現在存在するディレクトリ自体の権限は変更されますが、その中に新しく作成されるファイルに権限が自動的に引き継がれることはありません。
選択肢3:
setfattrは、ファイルの拡張属性(Extended Attributes)を操作するコマンドです。ACLも内部的には拡張属性の一種として保存されますが、通常ACLの権限設定にはsetfaclを使用します。user.aclという名前で値を直接書き込んでも、Linuxカーネルが解釈するACLとして正しく機能しません。
選択肢4:
これはACLのバックアップをリストアする際によく使われる手法ですが、新しい権限(デフォルトACL)を追加する操作ではありません。
なお、setfaclコマンドやgetfaclコマンドについては、以下で詳細を確認することができます。
https://linux.die.net/man/1/setfacl
https://linux.die.net/man/1/getfacl
https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/9/html/configuring_basic_system_settings/assembly_managing-access-control-list_managing-file-system-permissions
例題作成者
鯨井 貴博 (LinuCエヴァンジェリスト/登録インストラクター、LPI-Japanアカデミック認定校 ゼウスITトレーニングセンター)