アクセス制御表現
アクセス制御表現 (Access control expression、ACE) は、ファイルシステムの関連において、ファイルオブジェクトに付随するブール表現のリストである。 ACEは、どのユーザーもしくはシステムプロセスがオブジェクトへのアクセスを認められるか、オブジェクトに対してどのような操作が許可されるか、を定義するブール式を規定する。通常のACEの各項目は、操作及び表現を規定する。例えば、もしファイルオブジェクトが(read=(g:system OR u:Alice), write=(g:system AND !(u:Bob)))
を含むACEを持つ場合、system
グループのすべてのメンバーおよびAlice
という名前のユーザーにファイルを読み出す許可が与えられるが、ファイルに書き込むことを許されるのはBob
という名前のユーザーを除くsystem
グループのメンバーだけである。
従来のアクセス制御リスト (Access control list、ACL) は、結合操作がORだけに限定されるACEのサブセットとみなすことができる。
実装
編集わずかなシステムがACEを実装している。MapRファイルシステムはそのうちの一つである。
ファイルシステムACEへの歩み
編集初期のUnixおよびUnixに似たシステムは、ユーザーおよびグループのメンバーシップに基づく柔軟な許可方式を開発した。当初、ユーザーは単一のグループにだけ所属することができたが、のちにこの制約は緩和され複数グループに所属ができるようになった。グループの数が無制限になり、任意に複雑な許可方式を実装することが可能になったが、これは非常に多くのグループを費やすことでのみ実現できることであった。
ファイルシステムパーミッションの仕様において、より表現力を高めることを目指して、Microsoft Windows、Unix、Unixに似たシステムのLinux向けに多くの競合するアクセス制御リストの実装が開発された。ACLは単純なユーザーとグループパーミッションと比べると大幅な改善ではあるが、依然として一般的な要件を簡単に表現することができないことがある(例えばグループから一人のユーザーを除外する場合)。
ACEはこのようなニーズに応えるために開発された。
ACLとの比較
編集ACLでサポートされる許可表現はACEでサポートされる許可表現の厳密なサブセットだが、非常に高速かつ直接的に実装できるという長所がある。しかし、ハードウェア性能の進歩により、ACEの実装コストはもはや大きな懸念ではなくなっている。
関連項目
編集脚注・出典
編集参考文献
編集- “Syntax of Access Control Expressions”. MapR Documentation. 2016年6月21日閲覧。[リンク切れ]