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 chattr
comando 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
- +: Aggiunge l’attributo all’attributo esistente dei file.
- –: Rimuove l’attributo all’attributo esistente dei file.
- =: 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 chattr
attributi 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’ +i
attributo ” ” 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.