正確な詳細はファイルシステムに依存する場合がありますが、概念的には、ACL は、従来のアクセス許可や日付などと同様に、ファイル i ノードに保存されるメタデータです。
ACL のサイズはさまざまであるため、最終的に別のブロックに格納される可能性があります。ただし、詳細は、ファイル システムを設計している場合、またはファイル システム ドライバーをプログラミングしている場合にのみ重要です。
拡張属性を見てみましょう このホワイト ペーパーの「Linux での POSIX アクセス制御リスト」というタイトルのセクション。
抜粋
<ブロック引用>ACL は、ファイル システム オブジェクトに関連付けられた可変長の情報です。 Solaris が UFS ファイル システムで行っているように、ACL をファイル システムに格納するための専用の戦略が考案される可能性があります [13]。 UFS ファイルシステムの各 i ノードには、i_shadow と呼ばれるフィールドがあります。 inode に ACL がある場合、このフィールドはシャドウ inode を指します。ファイルシステムでは、シャドウ inode は通常のファイルと同様に使用されます。各シャドウ inode は、そのデータ ブロックに ACL を格納します。同じ ACL を持つ複数のファイルが同じシャドウ i ノードを指している可能性があります。
ACL に加えて、他のカーネルおよびユーザー空間の拡張機能は、情報をファイルに関連付けることができるという利点があるため、Linux およびその他のほとんどの UNIX ライクなオペレーティング システムは、拡張属性 (EA) と呼ばれるより一般的なメカニズムを実装しています。これらのシステムでは、ACL は EA として実装されます。
拡張属性の後 セクションでは、さまざまなファイル システム、ext2/ext3、JFS などによる EA の実装方法の詳細について説明します。
Ext4 の場合:
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Extended_Attributes
「拡張属性 (xattrs) は通常、ディスク上の別のデータ ブロックに格納され、inode.i_file_acl* を介して inode から参照されます。」