Risposte:
Gli attributi come gestiti da lsattr
/ chattr
su Linux e alcuni dei quali possono essere memorizzati da parecchi file system (ext2 / 3/4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus ...) e persino interrogati su CIFS / SMB (quando con estensioni POSIX) sono flag. Solo i bit che possono essere attivati o disattivati per disabilitare o abilitare un attributo (come immutabile o archivio ...). Il modo in cui sono memorizzati è specifico del file system, ma generalmente come record a 16/32/64 bit nell'inode.
L'elenco completo dei flag si trova sui filesystem nativi di Linux (ext2 / 3/4, btrfs ...) sebbene non tutti i flag si applichino a tutti gli FS, e per altri FS non nativi, Linux cerca di mapparli in modo equivalente funzioni nel file system corrispondente. Ad esempio, il flag simmutabile memorizzato da OSX su file system HFS + è mappato al flag immutabile corrispondente in Linux chattr
. Quale flag è supportato da quale file system è quasi mai documentato. Spesso, la lettura del codice sorgente del kernel è l'unica opzione.
Attributi estesi d'altra parte, come impostato con setfattr
o attr
su Linux store più di flag. Sono anche collegati a un file e sono coppie chiave / valore che possono essere (sia chiave che valore) matrici arbitrarie di byte (sebbene con limitazione di dimensioni su alcuni file system).
La chiave può essere ad esempio: system.posix_acl_access
o user.rsync.%stat
. Lo system
spazio dei nomi è riservato al sistema (non cambieresti gli ACL POSIX con setfattr
, ma soprattutto con setfacl
, gli ACL POSIX vengono archiviati come attributi estesi almeno su alcuni file system), mentre lo user
spazio dei nomi può essere utilizzato dalle applicazioni (qui rsync
lo usa per la sua --fake-super
opzione, per memorizzare informazioni sulla proprietà o le autorizzazioni quando non sei un superutente).
Ancora una volta, il modo in cui sono memorizzati è specifico del filesystem. Vedi WikiPedia per ulteriori informazioni .
lsattr
/ chattr
funzionano per non ext
filesystem? In caso contrario, come cambieresti le bandiere su non ext
sistemi su Linux? Anche la attr
pagina man dice che è scritto per XFS (anche se funziona per me ext4
). In realtà ho passato molto tempo a esaminare questo ieri, è difficile trovare buone informazioni. Si prega di consultare - unix.stackexchange.com/questions/118840/…
lsattr/chattr
sono per i flag di file. Non tutti i flag sono supportati da tutti i filesystem, ad esempio alcuni di essi come la compressione non funzioneranno su ext4 ma funzioneranno su btrfs.
reiserfs
.
Tutto è stato accarezzato inode
. Quando cambiate un file, in effetti cambiate il suo inode
.per scripting avete un buon comando:
stat --format=%a yourfile
È possibile utilizzare %variable
e restituire un utile dainode
Ma la tua risposta:
xattr
è su MacOS e chattr
su Linux.
attr
comando è destinato ai filesystem XFS, il comando indipendente equivalente al filesystem èsetfattr