Recherche de site Web

Comment utiliser la commande Chattr sous Linux


Sur cette page

  1. Conditions préalables
  2. Syntaxe de base
  3. Fichier sécurisé contre toute suppression accidentelle
  4. Comment réinitialiser l'attribut sur les fichiers
  5. Autoriser l'ajout de données sans modifier les données existantes sur un fichier
  6. Protéger les répertoires de manière récursive
  7. Conclusion

La commande chattr (changer l'attribut) sous Linux est un outil puissant utilisé pour modifier les attributs des fichiers sur un système de fichiers ext2, ext3 ou ext4. Il permet aux utilisateurs de définir certains attributs qui contrôlent la manière dont les fichiers peuvent être consultés et modifiés. Par exemple, l'option +i peut rendre un fichier immuable, ce qui signifie qu'il ne peut pas être modifié, supprimé ou renommé, même par l'utilisateur root, jusqu'à ce que l'attribut immuable soit supprimé. D'autres attributs incluent +a, qui permet à un fichier d'être ouvert uniquement en mode ajout, et +c, qui marque le fichier pour la compression. Cette commande est particulièrement utile pour les administrateurs système qui doivent appliquer des contrôles d'accès stricts et protéger les fichiers système critiques contre les modifications accidentelles ou malveillantes. La commande chattr doit être utilisée avec prudence, car une utilisation inappropriée peut restreindre l'accès aux fichiers de manière involontaire.

Conditions préalables

  • Un serveur exécutant le système d'exploitation Linux.
  • Un mot de passe root est configuré sur le serveur.

Syntaxe de base

La syntaxe de base de la commande chattr est présentée ci-dessous :

chattr [OPTIONS] [OPERATOR][ATTRIBUTES] FILE

Une brève explication de chaque option est présentée ci-dessous :

  • + : Utilisé pour ajouter les attributs spécifiques au fichier.
  • - : Utilisé pour supprimer les attributs spécifiques du fichier.
  • = : Utilisé pour définir les attributs spécifiés comme seuls attributs.
  • a : Ne peut être ouvert qu'en mode ajout pour l'écriture.
  • A : L'enregistrement de temps n'est pas mis à jour.
  • c : compressera automatiquement le fichier.
  • i : Protégez votre fichier contre toute suppression accidentelle.
  • S : Les modifications apportées aux fichiers sont écrites de manière synchrone sur le disque.

Fichier sécurisé contre toute suppression accidentelle

La sécurisation des fichiers importants est très importante pour tout administrateur système. Vous pouvez utiliser la commande chattr pour sécuriser votre fichier afin qu'aucun utilisateur ne puisse supprimer, renommer ou modifier vos fichiers.

Pour une meilleure compréhension, créez un répertoire nommé dir1 et un fichier nommé file1 avec la commande suivante :

mkdir dir1
touch file1

Ensuite, imprimez les attributs de file1 et dir1 avec la commande suivante :

ls -l

Sortir :

drwxr-xr-x 2 root root 4096 May  3 11:56 dir1
-rw-r--r-- 1 root root    0 May  3 11:56 file1

Ensuite, définissez les indicateurs +i sur dir1 et file1 pour empêcher quiconque de supprimer un fichier.

chattr +i dir1
chattr +i file1

Ensuite, vérifiez l'attribut à l'aide de la commande suivante :

ls -l

Sortir :

drwxr-xr-x 2 root root 4096 May  3 11:56 dir1
-rw-r--r-- 1 root root    0 May  3 11:56 file1

Maintenant, essayez de supprimer le fichier et le répertoire :

rm -rf file1 dir1

Sortir :

rm: cannot remove ‘file1’: Operation not permitted
rm: cannot remove ‘dir1’: Operation not permitted

Maintenant, essayez de renommer le fichier :

mv file1 file2

Sortir :

mv: cannot move ‘file1’ to ‘file2’: Operation not permitted

Maintenant, essayez de modifier les autorisations du fichier :

chmod 777 file1

Sortir :

chmod: changing permissions of ‘file1’: Operation not permitted

Comment réinitialiser l'attribut sur les fichiers

Vous pouvez également utiliser la commande chattr pour réinitialiser l'attribut de fichier que nous avons défini à l'étape précédente. Pour que n’importe qui puisse modifier et supprimer le fichier.

Vous pouvez utiliser l'indicateur -i pour supprimer l'attribut du fichier et du répertoire :

chattr -i file1 dir1

Vous pouvez maintenant vérifier l'état du fichier et du répertoire avec la commande suivante :

lsattr

Sortir :

-------------e-- ./dir1
-------------e-- ./file1

Autoriser l'ajout de données sans modifier les données existantes sur un fichier

Si vous souhaitez autoriser tous les utilisateurs à ajouter uniquement les données sans modifier ni changer les données existantes. Ensuite, vous pouvez utiliser +un indicateur sur le fichier.

Créons un nouveau fichier avec du contenu :

echo "Hi How Are You" > newfile.txt

Ensuite, définissez l'attribut +a sur le fichier :

chattr +a newfile.txt

Maintenant, essayez de remplacer le contenu déjà existant :

echo "I am replacing" > newfile.txt

Vous devriez obtenir l'erreur suivante :

bash: newfile.txt: Operation not permitted

Maintenant, essayez d'ajouter du nouveau contenu à un fichier existant :

echo "This is new content" >> newfile.txt

Maintenant, vérifiez le contenu d'un fichier :

cat newfile.txt

Sortir :

Hi How Are You
This is new content

Protéger les répertoires de manière récursive

Vous pouvez utiliser l'indicateur -R avec +i pour protéger le répertoire et les sous-répertoires de manière récursive.

Tout d'abord, créez un répertoire et des sous-répertoires avec la commande suivante :

mkdir -p test/dir1/dir2
mkdir -p test/dir3/dir4
mkdir -p test/dir5/dir6

Maintenant, sécurisez le répertoire test et tous les sous-répertoires avec la commande suivante :

chattr -R +i test

Maintenant, essayez de supprimer le répertoire test avec tous les sous-répertoires :

rm -rf test/

Vous devriez obtenir l'erreur suivante :

rm: cannot remove ‘test/dir1/dir2’: Permission denied
rm: cannot remove ‘test/dir5/dir6’: Permission denied
rm: cannot remove ‘test/dir3/dir4’: Permission denied

Maintenant, réinitialisez l'attribut du répertoire de test à l'aide de la commande suivante :

chattr -R -i test

Vous pouvez désormais supprimer le répertoire de test avec tous les sous-répertoires.

Conclusion

Dans le guide ci-dessus, vous avez appris à protéger les fichiers et les répertoires avec la commande chattr. J'espère que cela vous aidera à sécuriser vos fichiers de configuration importants.

Articles connexes: