Tutoriel de la commande chattr Linux pour les débutants (5 exemples)

Il arrive souvent qu’une machine Linux soit utilisée par différents utilisateurs. Il y a donc des chances que ces utilisateurs accèdent à un ensemble commun de fichiers. Cela ouvre la porte à des problèmes comme la suppression ou la modification accidentelle de fichiers importants, ce que tu ne voudrais absolument pas voir se produire en tant qu’administrateur.

Heureusement, il existe une commande – surnommée chattr – qui a été développée pour t’aider spécifiquement dans ce genre de scénarios. Dans ce tutoriel, nous allons parler de cet outil à l’aide de quelques exemples faciles à comprendre. Mais avant cela, il est bon de mentionner que tous les exemples ici ont été testés sur Ubuntu 18.04 LTS et Debian 10.

La commande chattr de Linux

En gros, la commande chattr est utilisée pour modifier les attributs des fichiers sur un système de fichiers Linux. Voici sa syntaxe :

chattr [ -RVf ] [ -v version ] [ mode ] files...

Et voici ce que la page de manuel dit à son sujet :

       chattr changes the file attributes on a Linux file system.

       The format of a symbolic mode is +-=[aAcCdDeijsStTu].

       The  operator  '+'  causes  the  selected attributes to be added to the
       existing attributes of the files; '-' causes them to  be  removed;  and
       '=' causes them to be the only attributes that the files have.

       The  letters  'aAcCdDeijsStTu' select the new attributes for the files:
       append only (a), no atime updates (A), compressed (c), no copy on write
       (C), no dump (d), synchronous directory updates (D), extent format (e),
       immutable (i), data journalling (j), secure deletion  (s),  synchronous
       updates  (S),  no tail-merging (t), top of directory hierarchy (T), and
       undeletable (u).

       The following attributes are read-only, and may be listed by  lsattr(1)
       but  not  modified  by  chattr:  compression  error (E), huge file (h),
       indexed directory (I), inline data (N), compression raw access (X), and
       compressed dirty file (Z).

       Not  all  flags  are supported or utilized by all filesystems; refer to
       filesystem-specific man pages such as btrfs(5), ext4(5), and xfs(5) for
       more filesystem-specific details.

Voici quelques exemples sous forme de questions-réponses qui devraient te donner une bonne idée du fonctionnement de la commande chattr.

Q1. Comment utiliser la commande chattr ?

Suppose que tu veuilles rendre un fichier en lecture seule. Pour cela, il te suffit d’exécuter la commande chattr avec l’option +i et le nom du fichier en entrée.

Par exemple :

chattr +i test.txt

La capture d’écran suivante montre qu’aucune autre opération n’a réussi sur le fichier une fois qu’il est devenu en lecture seule à l’aide de chattr.

Comment utiliser la commande chattr

Remarque: Comme tu l’as déjà remarqué, tu dois avoir les privilèges de root pour utiliser la commande chattr.

Q2. Comment supprimer la restriction en lecture seule imposée par chattr ?

C’est simple – il suffit d’utiliser l’option -i au lieu de +i. Par exemple :

chattr -i test.txt

Comment supprimer la restriction en lecture seule imposée par chattr.

Tu peux donc voir que le facteur de lecture seule a été supprimé avec l’option -i.

Q3. Comment donner une permission d’ajout à un fichier ?

Parfois, il se peut que tu ne veuilles pas une restriction complète sur un fichier. Ce que je veux dire, c’est que tu peux vouloir donner aux utilisateurs un accès en annexe seulement à un fichier, afin que de nouvelles informations puissent être ajoutées, mais que les informations existantes ne puissent pas être supprimées ou modifiées. C’est également possible en utilisant chattr grâce à l’option +a.

chattr +a test.txt

Comment donner l'autorisation d'ajouter un fichier à un fichier ?

Tu peux donc voir que nous pouvons maintenant ajouter des informations au fichier, mais que nous ne pouvons pas modifier les informations existantes dans le fichier ni supprimer le fichier. Pour inverser ce comportement, il suffit d’utiliser l’option -a.

chattr -a test.txt

Q4. Comment appliquer une restriction à l’aide de chattr à tous les fichiers d’un répertoire ?

Tu peux le faire en utilisant l’indicateur -R, qui te permet de modifier récursivement les attributs des répertoires et de leur contenu. Par exemple, si tu veux que tous les fichiers du répertoire test-dir soient en lecture seule, utilise la commande chattr de la manière suivante :

chattr -R +i ./test-dir/

La capture d’écran suivante montre que la restriction en lecture seule a été appliquée avec succès à tous les fichiers à l’intérieur du répertoire.

Comment appliquer une restriction à l'aide de chattr à tous les fichiers d'un répertoire ?

Q5. Comment vérifier les attributs chattr appliqués aux fichiers ?

Jusqu’à présent, pour vérifier si un attribut chattr a été appliqué avec succès, nous avons essayé d’effectuer des opérations comme modifier le fichier ou le supprimer. Mais il existe une commande distincte qui te permet de voir facilement si les attributs ont été appliqués ou non. La commande en question est lsattr.

lsattr [FILENAME]

Par exemple, la capture d’écran suivante montre la sortie de lsattr qui suggère clairement que l’attribut ‘i’ a été appliqué à tous les fichiers du répertoire.

Comment vérifier les attributs chattr appliqués sur les fichiers

Juste pour confirmer, voici le résultat après l’utilisation de l’option -i.

Sortie après l'utilisation de l'option -i

Tu peux donc voir dans la capture d’écran ci-dessus que l’attribut « lecture seule » a été supprimé de tous les fichiers.

Conclusion

Tu seras probablement d’accord pour dire que chattr est un outil de ligne de commande indispensable si tu es administrateur système ou si tu gères des utilisateurs sur une machine Linux en général. Utiliser efficacement la commande peut t’éviter bien des tracas. Cet article devrait être suffisant pour te permettre de commencer à utiliser la commande. Une fois que tu auras pratiqué les exemples dont nous avons parlé ici, dirige-toi vers lapage man de l’outil pour en savoir plus.

Vous aimerez aussi...