アクセス制御表現 (Access control expressionACE) は、ファイルシステムの関連において、ファイルオブジェクトに付随するブール表現のリストである。 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の実装コストはもはや大きな懸念ではなくなっている。

関連項目

編集

脚注・出典

編集

参考文献

編集