Ich studiere ACLs und bin mir nicht sicher, wo diese Informationen technisch gespeichert sind. Handelt es sich technisch gesehen nur um Metadaten von Inodes?
Antwort1
Die genauen Details hängen möglicherweise vom Dateisystem ab, aber konzeptionell gesehen handelt es sich bei den ACLs um Metadaten, die genau wie herkömmliche Berechtigungen, Daten usw. in den Datei-Inodes gespeichert sind.
Da die Größe der ACLs variieren kann, werden sie möglicherweise in separaten Blöcken gespeichert. Die Details sind jedoch nur dann von Bedeutung, wenn Sie ein Dateisystem entwerfen oder einen Dateisystemtreiber programmieren.
Antwort2
Für Ext4:
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Extended_Attributes
„Erweiterte Attribute (xattrs) werden normalerweise in einem separaten Datenblock auf der Festplatte gespeichert und von Inodes über inode.i_file_acl* referenziert.“
Antwort3
Schauen Sie sich dieErweiterte AttributeAbschnitt dieses Dokuments mit dem Titel:POSIX-Zugriffskontrolllisten unter Linux.
Auszug
ACLs sind Informationen variabler Länge, die mit Dateisystemobjekten verknüpft sind. Es können spezielle Strategien zum Speichern von ACLs auf Dateisystemen entwickelt werden, wie dies beispielsweise bei Solaris auf dem UFS-Dateisystem der Fall ist [13]. Jeder Inode auf einem UFS-Dateisystem hat ein Feld namens i_shadow. Wenn ein Inode eine ACL hat, zeigt dieses Feld auf einen Shadow-Inode. Auf dem Dateisystem werden Shadow-Inodes wie normale Dateien verwendet. Jeder Shadow-Inode speichert eine ACL in seinen Datenblöcken. Mehrere Dateien mit derselben ACL können auf denselben Shadow-Inode zeigen.
Da neben ACLs auch andere Kernel- und Userspace-Erweiterungen von der Möglichkeit profitieren, Informationen mit Dateien zu verknüpfen, implementieren Linux und die meisten anderen UNIX-ähnlichen Betriebssysteme einen allgemeineren Mechanismus namens Extended Attributes (EAs). Auf diesen Systemen werden ACLs als EAs implementiert.
Nach demErweiterte AttributeIn diesem Abschnitt geht es speziell darauf ein, wie die verschiedenen Dateisysteme (ext2/ext3, JFS usw.) EA implementieren.