Antworten:
Die Attribute, wie sie von lsattr
/ chattr
unter Linux verarbeitet werden und von denen einige von einigen Dateisystemen (ext2 / 3/4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus ...) gespeichert und sogar über CIFS abgefragt werden können / SMB (bei POSIX-Erweiterungen) sind Flags. Nur Bits, die ein- oder ausgeschaltet werden können, um ein Attribut zu deaktivieren oder zu aktivieren (wie unveränderlich oder archiviert ...). Wie sie gespeichert werden, ist dateisystemspezifisch, im Allgemeinen jedoch als 16/32/64-Bit-Datensatz im Inode.
Die vollständige Liste der Flags befindet sich auf nativen Linux-Dateisystemen (ext2 / 3/4, btrfs ...), obwohl nicht alle Flags für alle FS gelten. Bei anderen nicht nativen FS versucht Linux, sie gleichwertig zuzuordnen Funktionen im entsprechenden Dateisystem. Beispielsweise wird das von OSX auf HFS + -Dateisystemen gespeicherte simmutable- Flag dem entsprechenden unveränderlichen Flag unter Linux zugeordnet chattr
. Welches Flag von welchem Dateisystem unterstützt wird, ist kaum dokumentiert. Oft ist das Lesen des Kernel-Quellcodes die einzige Option.
Erweiterte Attribute hingegen, wie sie mit setfattr
oder attr
unter Linux festgelegt wurden, speichern mehr als Flags. Sie werden ebenfalls an eine Datei angehängt und sind Schlüssel / Wert-Paare, die (sowohl Schlüssel als auch Wert) beliebige Arrays von Bytes sein können (bei einigen Dateisystemen jedoch mit Größenbeschränkung).
Der Schlüssel kann zum Beispiel sein: system.posix_acl_access
oder user.rsync.%stat
. Der system
Namespace ist für das System reserviert (Sie würden die POSIX-ACLs nicht ändern setfattr
, sondern eher mit setfacl
POSIX-ACLs, die zumindest in einigen Dateisystemen als erweiterte Attribute gespeichert werden), während der user
Namespace von Anwendungen verwendet werden kann (hier) rsync
verwendet es für seine --fake-super
Option, Informationen über Besitz oder Berechtigungen zu speichern, wenn Sie kein Superuser sind).
Auch hier ist die Art und Weise, wie sie gespeichert werden, dateisystemspezifisch. Weitere Informationen finden Sie in WikiPedia .
lsattr
/ chattr
Arbeit für Nicht - ext
Dateisysteme? Wenn nicht, wie würden Sie die Flags auf Nicht- ext
Systemen unter Linux ändern ? Auch die attr
Manpage sagt, dass es für XFS geschrieben ist (obwohl es für mich funktioniert ext4
). Ich habe mich gestern lange damit beschäftigt, gute Informationen sind schwer zu bekommen. Bitte sehen Sie - unix.stackexchange.com/questions/118840/…
lsattr/chattr
sind für Dateiflaggen. Nicht alle Flags werden beispielsweise von allen Dateisystemen unterstützt. Einige davon wie Komprimierung funktionieren nicht in ext4, aber in btrfs.
reiserfs
.
Alles wurde eingegeben. inode
Wenn Sie eine Datei ändern, ändern Sie tatsächlich ihre. Für inode
Skripte haben Sie einen guten Befehl:
stat --format=%a yourfile
Sie können %variable
ein nützliches von verwenden und zurückgebeninode
Aber deine Antwort:
xattr
ist auf dem MacOS und chattr
auf Linux-Box.
attr
Befehl für XFS-Dateisysteme vorgesehen ist. Der entsprechende dateisystemunabhängige Befehl lautetsetfattr