321.2 拡張属性とACL
321.2 拡張属性とACL
重要度 5
説明 拡張属性とアクセス制御リストの使用方法を理解して、知っていることが要求される。
主要な知識範囲
- ACL
- EA 及び属性クラス
重要なファイル、用語、ユーティリティ
- getfacl
- setfacl
- getfattr
- setfattr
ACLとは
ACLとは、アクセス制御リスト(アクセスせいぎょリスト、Access Control List、ACL)とは、オブジェクト(受動体)に付属する許可属性のリスト。
ファイル/ディレクトリに対する[所有者/グループ/第三者]と[読み取り/書き込み/実行]の許可をより細かく設定できます。
例えば、ファイル X についてのアクセス制御リストに要素 (Alice, delete) があれば、Alice はファイル X を削除することができる。
getfacl
ファイルのアクセス制御リスト (access control list) を取得する。
各ファイルについて、getfacl はファイル名・所有者・グループ・ アクセス制御リスト (ACL) を表示する。
ディレクトリがデフォルト ACL を持つ場合、 getfacl はデフォルト ACL も表示する。 ディレクトリ以外はデフォルト ACL を持つことができない。
書式
getfacl [オプション]
getfacl [オプション] ファイル名
[]は省略可能。
主なオプション
-a または –access | ACLを表示する |
-d または –default | デフォルトACLを表示する |
-R または –recursive | 全てのファイルとディレクトリのACLを再帰的に一覧表示 |
例
test/test.log のACLを表示する
# getfacl test/test.log # file: test/test.log # owner: test02 # group: test02 user::rw- user:test01:rw- group::r-- mask::rw- other::r--
testディレクトリのACLを再帰的に表示する
# getfacl -R test/ # file: test/ # owner: test02 # group: test02 user::rwx group::r-x other::r-x # file: test//test.log # owner: test02 # group: test02 user::rw- user:test01:rw- group::r-- mask::rw- other::r--
setfacl
ファイルのアクセス制御リスト (access control list) を設定する
書式
setfacl [オプション] ファイル名
[]は省略可能。
主なオプション
-b または –remove-all | 全てのACLの拡張指定を削除 |
-d または –default | ACL指定を適用 |
–mask | ACLが明示的に指定されている場合でも、実行権マスクを再計算する |
-m [権限] | 指定した権限をACLの設定を変更 |
-M [ファイル名] | ACLの設定を指定したファイルから読み込み変更 |
-n, –no-mask | 実行マスクを再計算しない |
-R | 全てのファイルとディレクトリに対して再帰的に操作を適用する |
-x [権限] | ACLの設定から指定した権限を削除 |
-X [ファイル名] | ACLの設定を指定したファイルから読み込み削除 |
例
ファイル「test.log」に、ユーザー「test01」のアクセス権限(rw)のACLを設定する
# setfacl -m u:test01:rw test.log
ファイル「test.log」に設定済みのユーザー「test01」に対するアクセス権限を消去する
# setfacl -x u:test01 test.log
ファイル「test.log」からACLを全消去する
# setfacl -b test.log
拡張属性
通常のファイル属性は、ファイル名やパーミッション、更新日時などの基本属性です。
それに対して拡張属性(EA:Extended Attribute)には、基本的なファイル属性が持たない情報を設定できます。
拡張属性には、user[C], trusted[b], security[D], system[A] という名前空間があります
getfattr
ファイルの拡張属性を表示するコマンド
書式
getfattr [オプション] パス
[]は省略可能。
主なオプション
-n [拡張属性] または –name [拡張属性] | 指定した拡張属性の名前の値を表示する |
-d または –dump | 指定したパスに関連付けらえている拡張属性の値を全て表示する |
setfattr
ファイルの拡張属性を設定するコマンド
書式
setfattr [オプション] パス
setfattr [オプション] –restore ファイル名
[]は省略可能。
主なオプション
-n [名前] または –name [名前] | 設定した拡張属性の名前を指定 |
-v [値] または –value [値] | 拡張属性の値を指定 |
-x [名前] または -remove [名前] | 指定した拡張属性を削除 |
例
ファイル「test.log」に、名前「user.test」の値「test_val」の拡張属性を設定する
# setfattr -n user.test -v test_val test.log # getfattr test.log # file: test.log user.test
ファイル「test.log」に、名前「user.test」の値「test_val」の拡張属性を設定する
# setfattr -x user.test test.log # getfattr test.log
※ 拡張属性が設定されていない場合は、getfattrコマンドを実行しても何も表示されません
ディスカッション
コメント一覧
まだ、コメントがありません