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