ex1-lab

Linux, CentOS, Mac OS X, Windows, 仮想化, Apache等のLinux中心に気になることをメモがわりに・・・

321.2 拡張属性とACL

      2017/02/03 この記事は約5分で読むことができます。

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を表示する

testディレクトリのACLを再帰的に表示する

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を設定する

ファイル「test.log」に設定済みのユーザー「test01」に対するアクセス権限を消去する

ファイル「test.log」からACLを全消去する

拡張属性

通常のファイル属性は、ファイル名やパーミッション、更新日時などの基本属性です。
それに対して拡張属性(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」の拡張属性を設定する

ファイル「test.log」に、名前「user.test」の値「test_val」の拡張属性を設定する

※ 拡張属性が設定されていない場合は、getfattrコマンドを実行しても何も表示されません

 - LPIC 30x