GNU/Linux >> Tutoriels Linux >  >> Linux

Empêcher les fichiers et les dossiers d'être supprimés ou modifiés accidentellement sous Linux

Parfois, je ne pense pas correctement et accidentellement "SHIFT + DELETE" mes données. Pire encore, je ne sauvegarde même pas les données avant de les supprimer. Si vous êtes comme moi, voici une bonne nouvelle pour vous. Je connais un utilitaire de ligne de commande utile appelé "chattr" qui est utilisé pour empêcher la suppression ou la modification accidentelle de fichiers et de dossiers sous Linux.

Chattr, abréviation de Ch ange Attr ibute, applique/supprime certains attributs à un fichier ou un dossier de votre système Linux. Ainsi, personne ne peut supprimer ou modifier les fichiers et les dossiers accidentellement ou intentionnellement, même en tant qu'utilisateur root . Cela semble utile, n'est-ce pas ? En effet !

Empêchez la suppression ou la modification accidentelle de fichiers et de dossiers sous Linux à l'aide de Chattr

Par défaut, Chattr est préinstallé sur de nombreux systèmes d'exploitation Linux. Ne nous soucions donc pas de l'installation.

La syntaxe par défaut de la commande chattr est :

chattr [operator] [switch] [filename]

chattr a les opérateurs suivants :

  • L'opérateur '+ ' entraîne l'ajout des attributs sélectionnés aux attributs existants des fichiers.
  • L'opérateur '- ' entraîne leur suppression.
  • L'opérateur '= ' fait qu'ils sont les seuls attributs que les fichiers ont.

Chattr a différents attributs, à savoir - aAcCdDeijsStTu . Chaque lettre applique un attribut particulier à un fichier comme indiqué ci-dessous.

  • un - ajouter uniquement,
  • Un - pas de mises à jour ponctuelles,
  • c - compressé,
  • C - pas de copie en écriture,
  • d - pas de vidage,
  • D - mises à jour synchrones des répertoires,
  • e - format d'étendue,
  • je - immuable,
  • j - journalisation des données,
  • P - hiérarchie du projet,
  • s - suppression sécurisée,
  • S - mises à jour synchrones,
  • t - pas de fusion de queue,
  • T - haut de la hiérarchie des répertoires,
  • u - non supprimable.

Dans ce tutoriel, nous allons discuter de l'utilisation de deux attributs, à savoir a , je qui sont utilisés pour empêcher la suppression de fichiers et de dossiers.

Empêcher les fichiers d'être supprimés accidentellement sous Linux

Permettez-moi de créer un fichier appelé file.txt dans mon répertoire courant.

$ touch file.txt

Ou,

$ > file.txt

Maintenant, je vais appliquer "i " attribut qui rend le fichier immuable. Cela signifie - vous ne pouvez pas supprimer, modifier le fichier, même si vous êtes le propriétaire du fichier et l'utilisateur root.

$ sudo chattr +i file.txt

Vous pouvez vérifier les attributs du fichier à l'aide de la commande :

$ lsattr file.txt

Exemple de résultat :

----i---------e---- file.txt

Maintenant, essayez de supprimer le fichier en tant qu'utilisateur normal ou avec les privilèges sudo.

$ rm file.txt

Exemple de résultat :

rm: cannot remove 'file.txt': Operation not permitted

Laissez-moi essayer avec la commande sudo :

$ sudo rm file.txt

Exemple de résultat :

rm: cannot remove 'file.txt': Operation not permitted

Essayons d'ajouter du contenu dans le fichier texte.

$ echo 'Hello World!' >> file.txt

Exemple de résultat :

bash: file.txt: Operation not permitted

Même si vous essayez de supprimer le fichier de votre gestionnaire de fichiers en mode graphique, vous ne pouvez pas le supprimer.

Comme vous l'avez remarqué dans les sorties ci-dessus, nous ne pouvons pas supprimer ou modifier le fichier même en tant qu'utilisateur root.

Pour révoquer des attributs, utilisez simplement "-i " changer comme indiqué ci-dessous.

$ sudo chattr -i file.txt

Maintenant, l'attribut immuable a été supprimé. Vous pouvez maintenant modifier ou supprimer le fichier comme vous le souhaitez.

$ echo 'Hello World!' >> file.txt
$ cat file.txt
Hello World!
$ rm file.txt

De même, vous pouvez empêcher la suppression ou la modification accidentelle des répertoires, comme décrit dans la section suivante.

Empêchez les dossiers d'être supprimés et modifiés accidentellement sous Linux

Créez un répertoire appelé dir1 et un fichier nommé file.txt dans ce répertoire.

$ mkdir dir1 && touch dir1/file.txt

Maintenant, rendez ce répertoire et son contenu (file.txt) immuables à l'aide de la commande :

$ sudo chattr -R +i dir1

Où,

  • -R - rendra le dir1 et son contenu immuables de manière récursive.
  • +i - rend le répertoire immuable.

Maintenant, essayez de supprimer le répertoire en tant qu'utilisateur normal ou en utilisant l'utilisateur sudo.

$ rm -fr dir1
$ sudo rm -fr dir1

Vous obtiendrez le résultat suivant :

rm: cannot remove 'dir1/file.txt': Operation not permitted

Essayez d'ajouter du contenu dans le fichier en utilisant "echo ". Avez-vous réussi ? Bien sûr, vous n'avez pas pu !

Pour révoquer les attributs, exécutez :

$ sudo chattr -R -i dir1

Maintenant, vous pouvez supprimer ou modifier le contenu de ce répertoire comme d'habitude.

Empêchez les fichiers et les dossiers d'être supprimés accidentellement, mais autorisez l'opération d'ajout sous Linux

Nous savons maintenant comment empêcher la suppression et la modification accidentelles de fichiers et de dossiers. Ensuite, nous allons empêcher la suppression des fichiers et des dossiers, mais autoriser l'écriture du fichier en mode ajout uniquement. Cela signifie que vous ne pouvez pas éditer, modifier les données existantes dans le fichier, renommer le fichier et supprimer le fichier. Vous ne pouvez ouvrir le fichier pour l'écriture qu'en mode ajout.

Pour définir l'attribution du mode d'ajout à un fichier/répertoire, nous procédons comme suit :

Pour les fichiers :

$ sudo chattr +a file.txt

Pour les répertoires : 

$ sudo chattr -R +a dir1

Un fichier/dossier avec l'attribut 'a' ne peut être ouvert qu'en mode ajout pour l'écriture.

Ajoutez du contenu au(x) fichier(s) pour vérifier si cela fonctionne ou non.

$ echo 'Hello World!' >> file.txt
$ echo 'Hello World!' >> dir1/file.txt

Vérifiez le contenu du fichier à l'aide de la commande cat :

$ cat file.txt
$ cat dir1/file.txt

Exemple de résultat :

Hello World!

Comme vous pouvez le voir, nous pouvons être en mesure d'ajouter le contenu. Cela signifie que nous pouvons modifier les fichiers et les dossiers.

Essayons de supprimer le fichier ou le dossier maintenant.

$ rm file.txt

Sortie :

rm: cannot remove 'file.txt': Operation not permitted

Essayons de supprimer le dossier :

$ rm -fr dir1/

Ou essayez avec sudo :

$ sudo rm -fr dir1/

Exemple de résultat :

rm: cannot remove 'dir1/file.txt': Operation not permitted

Pour supprimer les attributs, exécutez les commandes suivantes :

Pour les fichiers :

$ sudo chattr -R -a file.txt

Pour les répertoires : 

$ sudo chattr -R -a dir1/

Maintenant, vous pouvez supprimer ou modifier les fichiers et dossiers comme d'habitude.

Pour plus de détails, reportez-vous aux pages de manuel.

$ man chattr

Conclusion

La sauvegarde et la protection des données est l'une des tâches principales d'un administrateur système Linux. Il existe de nombreux logiciels gratuits et commerciaux de protection des données disponibles sur le marché. Heureusement, nous avons cet outil intégré qui nous aide à protéger les données contre la suppression ou la modification accidentelle. Chattr peut être utilisé comme outil supplémentaire pour protéger les fichiers et données système importants de votre système Linux.

Suggestion de lecture :

  • Un moyen simple de protéger les fichiers contre la suppression accidentelle sous Linux
  • Comment éviter un arrêt ou un redémarrage accidentel sous Linux

Linux
  1. Un moyen facile de masquer des fichiers et des répertoires sous Linux

  2. Comment supprimer des fichiers et des répertoires sous Linux à partir de la ligne de commande

  3. Comparer graphiquement des fichiers et des dossiers sous Linux avec Meld

  4. Comment prévenir et récupérer de la suppression accidentelle de fichiers sous Linux

  5. Metamorphose 2 - Renommer par lots vos fichiers et dossiers sous Linux

Un moyen simple de protéger les fichiers contre la suppression accidentelle sous Linux

Comment ouvrir des fichiers et des dossiers en tant qu'administrateur dans Nautilus File Manager sous Linux

Comment masquer des dossiers et des fichiers sous Linux à l'aide d'un fichier texte

Économisez de l'espace en compressant les fichiers et les dossiers sous Linux

Comment copier des fichiers et des répertoires dans un terminal Linux

Commande Linux tar pour compresser et extraire des fichiers