Utilizzo del comando Chattr su Linux

Chattr è un programma a riga di comando UNIX pre-distribuito nella maggior parte delle distribuzioni Linux. Il ruolo di questo comando è consentire all’utente amministratore di impostare attributi di file che impongono restrizioni sui file.

Esistono alcuni attributi di file per ruoli diversi, come +i , che impedisce che un file venga rinominato, eliminato o modificato, e l’attributo +a, che consente solo di aggiungere nuovo contenuto, oltre ad alcuni altri che saranno discussi più avanti in questo tutorial.

Il vantaggio di utilizzare questo comando è che la restrizione si applica sia all’utente normale che all’utente root, rendendolo una buona scelta per proteggere file importanti e sensibili da modifiche accidentali o retroattive.

Sintassi del comando Chattr

Il chattrcomando accetta tre argomenti: il primo è l’opzione, il secondo è l’attributo del file e il terzo è il percorso del file a cui si desidera applicare l’attributo del file selezionato.

$ chattr [option] [attribute*] [path/to/file*]

Quando specifichi l’attributo del file, utilizzerai principalmente gli operatori “ +” e “-”: l’operatore “+” aggiunge la restrizione dell’attributo selezionato al file, mentre l’operatore “-” la rimuove. Oltre a questo, utilizzi l’operatore “=” per rimuovere tutti gli attributi esistenti e sostituirli con quelli selezionati.

Operatore
  1. +: Aggiunge l’attributo all’attributo esistente dei file.
  2. : Rimuove l’attributo all’attributo esistente dei file.
  3. =: Mantieni gli attributi esistenti dei file.

Le opzioni disponibili chattr sono l’opzione -R ” per applicare ricorsivamente l’attributo specificato a ogni file nella directory selezionata, l’opzione  “-V ” per visualizzare i file modificati e l’opzione  “-f” per nascondere gli errori comuni.

Elenco degli attributi dei file per il comando Chattr

Di seguito è riportato un elenco degli chattrattributi più comunemente utilizzati e dei relativi scopi.

  • a: Consenti solo l’aggiunta di nuovi contenuti imponendo restrizioni di scrittura, ridenominazione ed eliminazione.
  • A: Il record dell’ora di accesso (o atime) è congelato.
  • c: Abilita la compressione trasparente del file sul file system supportato.
  • S: Le modifiche al file vengono aggiornate in modo sincrono, il che garantirà l’integrità dei dati critici.
  • i: Abilita la modalità immutabile, che consente di visualizzare il contenuto del file ma impedisce azioni di scrittura, rinominazione, eliminazione o aggiunta.
  • j: Garantirà che le modifiche vengano applicate prima al journal ext3 e poi al file stesso.
  • t: Disattiva la fusione delle code.
  • d: Rifiuterà il processo di dump per il file selezionato, spesso utilizzato per creare backup.
  • u: Quando un file viene eliminato accidentalmente, viene generata una copia del file che potrà essere recuperata in seguito.
  • e: È un attributo predefinito applicato a tutti i file che indica che il file system utilizza le estensioni per mappare la posizione del file sul disco.

L’elenco sopra riportato contiene alcuni attributi dall’elenco completo. Per vedere l’elenco completo, puoi usare il comando man chattr. Tuttavia, questi sono sufficienti per un principiante, poiché il tuo lavoro ruoterà principalmente attorno a loro. Diamo ora un’occhiata ad alcuni esempi pratici di questo attributo in uso.

Applica restrizioni di scrittura, rinomina ed eliminazione al file

L’ +iattributo ” ” rende il file immutabile, impedendo qualsiasi modifica, anche da parte di root. Uno scenario reale sarebbe proteggere un file di configurazione critico da modifiche accidentali.

$ sudo chattr +i myfile.txt

Il contenuto del file può comunque essere visualizzato nonostante le restrizioni di scrittura, ridenominazione ed eliminazione.

Rimuovi la restrizione di scrittura, rinomina ed eliminazione dal file

Per rimuovere le restrizioni imposte a un file nel metodo precedente, è possibile utilizzare l’attributo “-i “.

$ sudo chattr -i myfile.txt

Nota che questo rimuoverà solo la restrizione per l’attributo  “+i“. Se l’utente assegna un attributo diverso o più attributi contemporaneamente, questi continueranno a esistere.

Applica autorizzazione di sola aggiunta

L’attributo +a è molto simile all’attributo  +i e impedisce le azioni di scrittura, rinomina ed eliminazione, ma consente di aggiungere nuovo contenuto al file. È possibile applicare questo attributo ai file di registro per impedire modifiche retroattive.

$ sudo chattr +i myfile.txt

Per ripristinare il file al suo stato originale, utilizzare l’attributo -a per rimuovere la restrizione “append-only”.

Controlla l’attributo applicato al file selezionato

Per tenere traccia degli attributi esistenti o verificare se l’attributo applicato è impostato, è possibile utilizzare il comando lsattr, che elenca tutti gli attributi assegnati al file selezionato.

$ lsattr myfile.txt

Sostituisci l’attributo esistente con il nuovo attributo

Quando a un file sono applicati più attributi ma si desidera sostituirli tutti con quello selezionato, è possibile specificare l’attributo con l’operatore =u per questa attività.

$ sudo chattr =u myfile.txt

Applica l’attributo a tutti i file nella directory selezionata

Per applicare un attributo selezionato a tutti i file nella directory di destinazione, utilizzare l’opzione -RV per apportare modifiche ricorsive a tutti i file, quindi elencare i file interessati.

$ sudo chattr -RV +u mydir/

Chattr è il comando con vari operatori e attributi, così come le sue opzioni disponibili. Se hai domande sull’argomento, sentiti libero di contattarci tramite la sezione commenti.

Autore

Classe Novanta3, Fondatore di TrgtKLS. Appassionato in Sec IT & Tech. Expert per l'amministrazione web server e supporto in Back-&, ottimizzazione e manutenzione di esso. • Metà Free e Metà Freelancer • mail@trgtkls.org

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

close