chattr - chattr

chattr
Auteur(s) original(aux) Carte Rémy
Système opérateur Linux
Plate-forme Multiplateforme
Taper Commander
drapeaux
Système opérateur Systèmes de type BSD , y compris macOS
Plate-forme Multiplateforme
Taper Commander

chattr est la commande sous Linux qui permet à un utilisateur de définir certains attributs d'un fichier. lsattr est la commande qui affiche les attributs d'un fichier.

La plupart des systèmes de type BSD , y compris macOS , ont toujours eu une commande chflags analogue pour définir les attributs, mais aucune commande spécifiquement destinée à les afficher ; des options spécifiques à la commande ls sont utilisées à la place. La commande chflags est apparue pour la première fois dans 4.4BSD .

Solaris n'a pas de commandes spécifiquement destinées à les manipuler. chmod et ls sont utilisés à la place.

Les autres Unix , en général, n'ont pas de commandes analogues. Les commandes au son similaire chatr (de HP-UX ) et lsattr (de AIX ) existent mais ont des fonctions sans rapport.

Entre autres, la commande chattr est utile pour rendre les fichiers immuables afin que les fichiers de mots de passe et certains fichiers système ne puissent pas être effacés lors des mises à jour logicielles.

Dans les systèmes Linux ( chattr et lsattr )

Prise en charge du système de fichiers

Les outils de ligne de commande chattr (pour manipuler les attributs) et lsattr (pour lister les attributs) étaient à l'origine spécifiques à la famille Second Extended Filesystem ( ext2 , ext3 , ext4 ) et sont disponibles dans le package e2fsprogs .

Cependant, la fonctionnalité a depuis été étendue, entièrement ou partiellement, à de nombreux autres systèmes, notamment XFS , ReiserFS , JFS et OCFS2 . Le système de fichiers btrfs inclut la fonctionnalité d'attribut, y compris l' Cindicateur, qui désactive la fonction intégrée de copie sur écriture (CoW) de btrfs en raison des performances plus lentes associées à CoW.

description chattr

La forme de la commande chattr est :

 chattr [-RVf] [-+=AacDdijsTtSu] [-v version] files...
  • -R modifie récursivement les attributs des répertoires et de leur contenu
  • -V est d'être verbeux et d'imprimer la version du programme
  • -f supprime la plupart des messages d'erreur

description de lsattr

La forme de la commande lsattr (gnu 1.41.3) :

 lsattr [ -RVadv ] [ files...  ]
  • -R répertorie de manière récursive les attributs des répertoires et leur contenu
  • -V affiche la version du programme
  • -arépertorie tous les fichiers dans les répertoires, y compris les dotfiles
  • -d répertorie les répertoires comme les autres fichiers, plutôt que de lister leur contenu

Les attributs

Certains attributs incluent :

Attributs de fichier sur un système de fichiers Linux selon la chattr(1)page de manuel Linux
Attribut drapeau lsattr option chattr Sémantique et logique
Aucune atimemise à jour A +Arégler
-Asur clair
  • Lorsqu'un fichier avec l' Aattribut défini est accédé, son enregistrement atime n'est pas modifié.
  • Cela évite un certain nombre d'opérations d'E/S disque.
Ajouter uniquement a +arégler
-asur clair
  • Un fichier avec l' aattribut défini ne peut être ouvert qu'en mode ajout pour l'écriture.
Comprimé c +crégler
-csur clair
  • Un fichier avec l' cattribut défini est automatiquement compressé sur le disque par le noyau.
  • Une lecture de ce fichier renvoie des données non compressées.
  • Une écriture dans ce fichier compresse les données avant de les stocker sur le disque.
Pas de copie sur écriture (CoW) C +Crégler
-Csur clair
  • Un fichier avec l' Cattribut ne sera pas soumis aux mises à jour Copy-on-Write.
  • Les mises à jour de ces fichiers peuvent ne pas être soumises à des instantanés atomiques et peuvent manquer d'informations de fiabilité sur certains systèmes de fichiers et noyaux.
Mises à jour d'annuaires synchrones D +Drégler
-Dsur clair
  • Lorsqu'un répertoire avec l' Dattribut défini est modifié, les modifications sont écrites de manière synchrone sur le disque
  • Cela équivaut à l' dirsync option de montage , appliquée à un sous-ensemble de fichiers.
Pas de décharge d +drégler
-dsur clair
  • Un fichier avec l' dattribut défini n'est pas candidat à la sauvegarde lorsque le programme de vidage est exécuté.
Erreur de compression E (indisponible)
  • L' Eattribut est utilisé par les correctifs de compression expérimentaux pour indiquer qu'un fichier compressé comporte une erreur de compression.
Format d'étendue e (indisponible)
  • L' eattribut indique que le fichier utilise des extensions pour mapper les blocs sur le disque.
Fichier énorme h (indisponible)
  • L' hattribut indique que le fichier stocke ses blocs en unités de la taille de bloc du système de fichiers au lieu d'unités de secteurs.
  • Cela signifie que le fichier est, ou était à un moment donné, supérieur à 2 To.
Répertoire indexé I (indisponible)
  • L' Iattribut est utilisé par le code du programme htree pour indiquer qu'un répertoire est en cours d'indexation à l'aide d'arbres hachés.
Immuable i +irégler
-isur clair
  • Un fichier avec l' iattribut ne peut pas être modifié.
  • Il ne peut pas être supprimé ou renommé, aucun lien ne peut être créé vers ce fichier et aucune donnée ne peut être écrite dans le fichier.
  • Lorsqu'il est défini, empêche, même le superutilisateur , d'effacer ou de modifier le contenu du fichier.
Journalisation des données j +jrégler
-jsur clair
  • Un fichier avec l' jattribut a toutes ses données écrites dans le journal ext3 avant d'être écrites dans le fichier lui-même, si le système de fichiers est monté avec les options "data=ordered"ou "data=writeback".
  • Lorsque le système de fichiers est monté avec l' "data=journal"option, toutes les données du fichier sont déjà journalisées , cet attribut n'a donc aucun effet.
Suppression sécurisée s +srégler
-ssur clair
Mises à jour synchrones S +Srégler
-Ssur clair
  • Lorsqu'un fichier avec l' Sattribut défini est modifié, les modifications sont écrites de manière synchrone sur le disque ; cela équivaut à l'option de montage 'sync' appliquée à un sous-ensemble de fichiers.
  • Cela équivaut à l' sync option de montage , appliquée à un sous-ensemble de fichiers.
Haut de la hiérarchie des répertoires T +Trégler
-Tsur clair
  • Un répertoire avec l' Tattribut sera considéré comme le sommet des hiérarchies de répertoires aux fins de l' allocateur de blocs Orlov .
  • Il s'agit d'un indice pour l'allocateur de blocs utilisé par ext3 et ext4 que les sous-répertoires de ce répertoire ne sont pas liés et doivent donc être séparés à des fins d'allocation.
  • Par exemple : c'est une très bonne idée de définir l' Tattribut sur le /homerépertoire, de sorte que /home/johnet /home/marysoient placés dans des groupes de blocs séparés.
  • Pour les répertoires où cet attribut n'est pas défini, l'allocateur de blocs Orlov essaiera de regrouper les sous-répertoires plus près les uns des autres dans la mesure du possible.
Pas de fusion de queue t +trégler
-tsur clair
  • Pour les systèmes de fichiers qui prennent en charge la fusion de la queue , un fichier avec l' tattribut n'aura pas de fragment de bloc partiel à la fin du fichier fusionné avec d'autres fichiers.
  • Ceci est nécessaire pour des applications telles que LILO , qui lit directement le système de fichiers et ne comprend pas les fichiers fusionnés en queue.
Indélébile u +urégler
-usur clair
  • Lorsqu'un fichier avec l' uattribut défini est supprimé, son contenu est enregistré.
  • Cela permet à l'utilisateur de demander sa restauration .
Accès brut de compression X (indisponible)
  • L' Xattribut est utilisé par les correctifs de compression expérimentaux pour indiquer qu'un contenu brut d'un fichier compressé est accessible directement.
Fichier sale compressé Z (indisponible)
  • L' Zattribut est utilisé par les correctifs de compression expérimentaux pour indiquer qu'un fichier compressé est "sale".
Numéro de version / génération -v -v version
  • Numéro de version/génération du fichier.

Remarques

Dans les systèmes de type BSD ( chflags )

Prise en charge du système de fichiers

La commande chflags n'est pas spécifique à des systèmes de fichiers particuliers. UFS sur les systèmes BSD et APFS , HFS+ , SMB , AFP et FAT sur macOS prennent en charge au moins certains indicateurs.

description des indicateurs

La forme de la commande chflags est :

 chflags [-R [-H | -L | -P]] flags file ...
  • -HSi l'option -R est spécifiée, les liens symboliques sur la ligne de commande sont suivis. (Les liens symboliques rencontrés dans la traversée de l'arbre ne sont pas suivis.)
  • -L Si l'option -R est spécifiée, tous les liens symboliques sont suivis.
  • -PSi l'option -R est spécifiée, aucun lien symbolique n'est suivi. C'est la valeur par défaut.
  • -R Modifiez les indicateurs de fichier pour les hiérarchies de fichiers enracinées dans les fichiers au lieu de simplement les fichiers eux-mêmes.

Affichage

Les systèmes de type BSD, en général, n'ont pas de commande par défaut au niveau de l'utilisateur spécifiquement destinée à afficher les drapeaux d'un fichier. La commande ls fera avec soit le -lo, soit le -lO, selon le système, les drapeaux passés.

Les attributs

Tous les attributs traditionnels peuvent être définis ou effacés par le super-utilisateur ; certains peuvent également être définis ou effacés par le propriétaire du fichier. Certains attributs incluent :

Attributs de fichier
Attribut ls drapeau drapeau chflags paramétrable par le propriétaire Prise en charge du système d'exploitation Sémantique et logique
Archivé cambre arc , archivé Non Tous Le fichier est archivé
Opaque opaque opaque Oui Tous Le répertoire est opaque lorsqu'il est affiché via un montage union
Pas de décharge nodump nodump Oui Tous Le fichier ne peut pas être vidé
Ajout système uniquement sappnd sappnd , sappend Non Tous Les données existantes dans le fichier ne peuvent pas être écrasées et le fichier ne peut pas être tronqué
Ajout par l'utilisateur uniquement uappnd uappnd , uappend Oui Tous Les données existantes dans le fichier ne peuvent pas être écrasées et le fichier ne peut pas être tronqué
Système immuable schg schg , échange , simmutable Non Tous Le fichier ne peut pas être modifié, renommé, déplacé ou supprimé
Utilisateur immuable euh uchg , uchange , immuable Oui Tous Le fichier ne peut pas être modifié, renommé, déplacé ou supprimé
Système sans dissociation sunlnk sunlnk, sunlink Non Tous Le fichier ne peut pas être supprimé, renommé ou monté ; sur macOS, cet indicateur doit être défini ou supprimé du mode utilisateur unique
Utilisateur non-dissocié uunlnk uunlnk, uunlink Oui Certains Le fichier ne peut pas être supprimé, renommé ou monté ; non pris en charge par macOS
Caché caché caché Non FreeBSD Le fichier est caché par défaut dans l'interface graphique (mais pas dans ls )
Utilisateur masqué caché caché Oui FreeBSD Le fichier est caché par défaut dans l'interface graphique (mais pas dans ls )
Caché caché caché Oui macOS Le fichier est caché par défaut dans l'interface graphique (mais pas dans ls )
Suivi suivi suivi Oui macOS Les modifications et suppressions de fichiers sont suivies
Limité limité limité Non macOS Le fichier est protégé par la protection de l'intégrité du système ; accompagné de l' attribut étendu com.apple.rootless ; l'indicateur doit être défini ou supprimé du mode de récupération
Comprimé comprimé Non macOS Le fichier est compressé en HFS (indicateur en lecture seule) ; non disponible sur les volumes au format APFS
Coffre de données Non macOS Indicateur de confidentialité caché depuis que macOS Mojave est défini par le système principal pour interdire tout accès sans droits spéciaux

Les systèmes BSD offrent des options supplémentaires comme offline , snapshot , sparse et uarchive ; voir Références .

Voir également

  • ATTRIB – commande analogue sous MS-DOS, OS/2 et Microsoft Windows
  • chown – changer la propriété du fichier/répertoire dans un système Unix
  • chmod – modifier les attributs de contrôle d'accès aux fichiers dans un système Unix
  • cacls – modifier les listes de contrôle d'accès aux fichiers dans Microsoft Windows NT

Remarques

Les références