技術的には、ACLデータはどこに保存されますか?

技術的には、ACLデータはどこに保存されますか?

ACLを調査していますが、この情報が技術的にどこにあるのか混乱しています。技術的にこれは単にinodeのメタデータですか?

答え1

正確な詳細はファイルシステムによって異なりますが、概念的には、ACLは既存の権限、日付などと同様にファイルのinodeに格納されているメタデータです。

ACLはサイズが異なる可能性があるため、最終的に別々のブロックに保存できます。ただし、詳細はファイルシステムの設計時やファイルシステムドライバの作成時にのみ重要です。

答え2

Ext4の場合:

https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Extended_Attributes

「拡張属性(xattrs)は通常、ディスク上の別々のデータブロックに格納され、inode.i_file_acl *を介してinodeで参照されます。」

答え3

見て拡張属性この記事のセクション:LinuxのPOSIXアクセス制御リスト

抜粋

ACL はファイルシステムオブジェクトに関連する可変長情報です。 SolarisがUFSファイルシステムで行うように、ファイルシステムにACLを格納する専用ポリシーを設計することが可能です[13]。 UFS ファイルシステムの各 inode には i_shadow というフィールドがあります。 inodeにACLがある場合、このフィールドはシャドウinodeを指します。ファイルシステムでは、シャドウ inode が通常のファイルのように使用されます。各シャドウ inode は、対応するデータブロックに ACL を格納します。同じ ACL を持つ複数のファイルが同じシャドウ inode を指すことがあります。

ACL以外の他のカーネルお​​よびユーザー空間拡張は、情報フラグメントをファイルに関連付けることができるという利点があるため、Linuxおよび他のほとんどのUNIX様オペレーティングシステムは、拡張属性(EA)というより一般的なメカニズムを実装します。これらのシステムでは、ACLはEAとして実装されます。

〜の後拡張属性最初の部分では、ext2 / ext3、JFSなど、さまざまなファイルシステムがEAを実装する方法を詳しく紹介します。

関連情報