Réponses:
Les attributs tels que gérés par lsattr
/ chattr
sous Linux et certains d'entre eux peuvent être stockés par un bon nombre de systèmes de fichiers (ext2 / 3/4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus ...) et même interrogés via CIFS / SMB (avec les extensions POSIX) sont des indicateurs. Juste des bits qui peuvent être activés ou désactivés pour désactiver ou activer un attribut (comme immuable ou archive ...). La façon dont ils sont stockés est spécifique au système de fichiers, mais généralement en tant qu'enregistrement 16/32/64 bits dans l'inode.
La liste complète des drapeaux se trouve sur les systèmes de fichiers natifs Linux (ext2 / 3/4, btrfs ...) bien que tous les drapeaux ne s'appliquent pas à tous les FS, et pour les autres FS non natifs, Linux essaie de les mapper à des équivalents dans le système de fichiers correspondant. Par exemple, l' indicateur simmutable tel qu'il est stocké par OSX sur les systèmes de fichiers HFS + est mappé à l'indicateur immuable correspondant sous Linux chattr
. Quel indicateur est pris en charge par quel système de fichiers est à peine documenté. Souvent, la lecture du code source du noyau est la seule option.
Les attributs étendus, d'autre part, tels qu'ils sont définis avec setfattr
ou attr
sur Linux stockent plus que des indicateurs. Ils sont également attachés à un fichier et sont des paires clé / valeur qui peuvent être (à la fois clé et valeur) des tableaux arbitraires d'octets (mais avec une limitation de taille sur certains systèmes de fichiers).
La clé peut être par exemple: system.posix_acl_access
ou user.rsync.%stat
. L' system
espace de noms est réservé au système (vous ne changeriez pas les ACL POSIX avec setfattr
, mais plus avec setfacl
, les ACL POSIX se trouvent juste être stockées en tant qu'attributs étendus au moins sur certains systèmes de fichiers), tandis que l' user
espace de noms peut être utilisé par les applications (ici rsync
l'utilise pour son --fake-super
option, pour stocker des informations sur la propriété ou les autorisations lorsque vous n'êtes pas superutilisateur).
Encore une fois, la façon dont ils sont stockés est spécifique au système de fichiers. Voir WikiPedia pour plus d'informations .
lsattr
/ chattr
fonctionne pour les non- ext
systèmes de fichiers? Sinon, comment changeriez-vous les drapeaux sur les non- ext
systèmes sous Linux? La attr
page de manuel indique également qu'elle est écrite pour XFS (même si elle fonctionne pour moi ext4
). En fait, j'ai passé beaucoup de temps à étudier cela hier, il est difficile de trouver de bonnes informations. Veuillez voir - unix.stackexchange.com/questions/118840/…
lsattr/chattr
sont pour les drapeaux de fichiers. Tous les indicateurs ne sont pas pris en charge par tous les systèmes de fichiers, par exemple, certains comme la compression ne fonctionneront pas sur ext4 mais fonctionneront sur btrfs.
reiserfs
.
Tout a été caressé inode
. Lorsque vous changez un fichier, en effet vous changez son inode
.pour les scripts, vous avez une bonne commande:
stat --format=%a yourfile
Vous pouvez utiliser %variable
et renvoyer uninode
Mais votre réponse:
xattr
est sur MacOS et chattr
sur Linux Box.
attr
commande est destinée aux systèmes de fichiers XFS, la commande équivalente indépendante du système de fichiers estsetfattr