GNU/Linux >> Linux Esercitazione >  >> Linux

Impedisci la cancellazione o la modifica accidentale di file e cartelle in Linux

A volte, non penso direttamente e accidentalmente "MAIUSC + CANC" i miei dati. Peggio ancora, non eseguo nemmeno il backup dei dati prima di eliminarli. Se sei come me, ecco una buona notizia per te. Conosco un'utile utility da riga di comando chiamata "chattr" che viene utilizzato per impedire la cancellazione o la modifica accidentale di file e cartelle in Linux.

Chattr, abbreviazione di Ch ange Attr ibute, applica/rimuove determinati attributi a un file o una cartella nel tuo sistema Linux. Quindi nessuno può eliminare o modificare file e cartelle accidentalmente o intenzionalmente, anche come utente root . Sembra utile, vero? Infatti!

Previeni la cancellazione o la modifica accidentale di file e cartelle in Linux utilizzando Chattr

Per impostazione predefinita, Chattr è preinstallato in molti sistemi operativi Linux. Quindi non ci preoccupiamo dell'installazione.

La sintassi predefinita del comando chattr è:

chattr [operator] [switch] [filename]

chattr ha i seguenti operatori:

  • L'operatore '+ ' fa sì che gli attributi selezionati vengano aggiunti agli attributi esistenti dei file.
  • L'operatore '- ' fa sì che vengano rimossi.
  • L'operatore '= ' fa in modo che siano gli unici attributi che hanno i file.

Chattr ha attributi diversi, vale a dire - aAccCdDeijsStTu . Ogni lettera applica un particolare attributo a un file come elencato di seguito.

  • a - aggiungi solo,
  • A - nessun aggiornamento in tempo reale,
  • c - compresso,
  • C - nessuna copia in scrittura,
  • d - nessun dump,
  • D - aggiornamenti sincroni delle directory,
  • e - formato dell'estensione,
  • io - immutabile,
  • j - journaling dei dati,
  • P - gerarchia del progetto,
  • s - cancellazione sicura,
  • S - aggiornamenti sincroni,
  • t - nessuna coda,
  • T - in cima alla gerarchia delle directory,
  • tu - non cancellabile.

In questo tutorial, discuteremo l'utilizzo di due attributi, vale a dire a , io che vengono utilizzati per impedire la cancellazione di file e cartelle.

Impedisci la cancellazione accidentale dei file in Linux

Fammi creare un file chiamato file.txt nella mia directory attuale.

$ touch file.txt

Oppure,

$ > file.txt

Ora applicherò "i " attributo che rende il file immutabile. Significa che non puoi eliminare, modificare il file, anche se sei il proprietario del file e l'utente root.

$ sudo chattr +i file.txt

Puoi controllare gli attributi del file usando il comando:

$ lsattr file.txt

Risultato di esempio:

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

Ora prova a rimuovere il file come utente normale o con privilegi sudo.

$ rm file.txt

Risultato di esempio:

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

Fammi provare con il comando sudo:

$ sudo rm file.txt

Risultato di esempio:

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

Proviamo ad aggiungere alcuni contenuti nel file di testo.

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

Risultato di esempio:

bash: file.txt: Operation not permitted

Anche se provi a rimuovere il file dal tuo file manager in modalità GUI, non puoi eliminarlo.

Come hai notato negli output di cui sopra, non possiamo eliminare o modificare il file anche come utente root.

Per revocare gli attributi, usa semplicemente "-i " cambiare come mostrato di seguito.

$ sudo chattr -i file.txt

Ora, l'attributo immutabile è stato rimosso. Ora puoi modificare o eliminare il file come desideri.

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

Allo stesso modo, puoi impedire la cancellazione o la modifica accidentale delle directory come descritto nella sezione successiva.

Evita che le cartelle vengano cancellate e modificate accidentalmente in Linux

Crea una directory chiamata dir1 e un file chiamato file.txt all'interno di questa directory.

$ mkdir dir1 && touch dir1/file.txt

Ora, rendi immutabile questa directory e il suo contenuto (file.txt) usando il comando:

$ sudo chattr -R +i dir1

Dove,

  • -R - renderà immutabile la directory1 e il suo contenuto in modo ricorsivo.
  • +i - rende la directory immutabile.

Ora, prova a eliminare la directory come utente normale o usando sudo user.

$ rm -fr dir1
$ sudo rm -fr dir1

Otterrai il seguente output:

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

Prova ad aggiungere alcuni contenuti nel file usando "echo " comando. Ce l'hai fatta? Certo che non ci sei riuscito!

Per revocare gli attributi, esegui:

$ sudo chattr -R -i dir1

Ora puoi eliminare o modificare il contenuto di questa directory come al solito.

Impedisci la cancellazione accidentale di file e cartelle, ma consenti l'operazione di aggiunta in Linux

Ora sappiamo come impedire la cancellazione e la modifica accidentale di file e cartelle. Successivamente, impediremo l'eliminazione di file e cartelle, ma consentiremo la scrittura del file solo in modalità di aggiunta. Ciò significa che non puoi modificare, modificare i dati esistenti nel file, rinominare il file ed eliminare il file. Puoi aprire il file per la scrittura solo in modalità append.

Per impostare l'attribuzione della modalità di aggiunta a un file/directory, procediamo come segue:

Per i file:

$ sudo chattr +a file.txt

Per le directory: 

$ sudo chattr -R +a dir1

Un file/cartella con l'attributo 'a' impostato può essere aperto solo in modalità append per la scrittura.

Aggiungi alcuni contenuti ai file per verificare se funziona o meno.

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

Controlla il contenuto del file usando il comando cat:

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

Risultato di esempio:

Hello World!

Come puoi vedere, possiamo essere in grado di aggiungere i contenuti. Significa che possiamo modificare i file e le cartelle.

Proviamo ora a eliminare il file o la cartella.

$ rm file.txt

Risultato:

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

Proviamo a cancellare la cartella:

$ rm -fr dir1/

Oppure prova con sudo:

$ sudo rm -fr dir1/

Risultato di esempio:

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

Per rimuovere gli attributi, esegui i seguenti comandi:

Per i file:

$ sudo chattr -R -a file.txt

Per le directory: 

$ sudo chattr -R -a dir1/

Ora puoi eliminare o modificare i file e le cartelle come al solito.

Per maggiori dettagli, fare riferimento alle pagine man.

$ man chattr

Conclusione

Il backup e la protezione dei dati è uno dei compiti principali di un amministratore di sistema Linux. Sul mercato sono disponibili numerosi software gratuiti e commerciali per la protezione dei dati. Fortunatamente, abbiamo questo strumento integrato che ci aiuta a proteggere i dati da cancellazioni o modifiche accidentali. Chattr può essere utilizzato come strumento aggiuntivo per proteggere i file e i dati di sistema importanti nel tuo sistema Linux.

Lettura consigliata:

  • Un modo semplice per proteggere i file dall'eliminazione accidentale in Linux
  • Come evitare l'arresto o il riavvio accidentale in Linux

Linux
  1. Un modo semplice per nascondere file e directory in Linux

  2. Come eliminare file e directory in Linux dalla riga di comando

  3. Come prevenire e ripristinare l'eliminazione accidentale di file in Linux

  4. Come estrarre i file .gz e .tar.gz in Linux

  5. Metamorphose 2 – Rinomina in batch i tuoi file e cartelle su Linux

Un modo semplice per proteggere i file dall'eliminazione accidentale in Linux

Come aprire file e cartelle come amministratore in Nautilus File Manager in Linux

Come nascondere cartelle e file in Linux usando un file di testo

Risparmia spazio comprimendo file e cartelle in Linux

Come copiare file e directory nel terminale Linux

Comando tar di Linux per comprimere ed estrarre file