Introduzione
In Linux, gli attributi di file sono proprietà di metadati che descrivono il comportamento del file. Ad esempio, un attributo può indicare se un file è compresso o specificare se il file può essere eliminato.
Alcuni attributi come l'immutabilità possono essere impostati o cancellati, mentre altri come la crittografia sono di sola lettura e possono essere solo visualizzati. Il supporto per alcuni attributi dipende dal filesystem utilizzato.
Questo articolo spiega come utilizzare il comando chattr
per modificare gli attributi di file sui file system Linux.
Sintassi del comando chattr
Il comando chattr
assume la seguente forma generale:
chattr [OPTIONS] [OPERATOR][ATTRIBUTES] FILE...
Il valore di [OPERATOR]
può essere uno dei seguenti simboli:
+
- Questo operatore dice al comandochattr
di aggiungere gli attributi specificati a quelli esistenti.-
- Questo operatore dice al comandochattr
di rimuovere gli attributi specificati da quelli esistenti.=
- Questo operatore dice al comandochattr
a impostare gli attributi specificati come gli unici attributi.
L'operatore è seguito da uno o più flag [ATTRIBUTES]
che si desidera aggiungere o rimuovere dagli attributi del file. Di seguito è riportato un elenco di alcuni attributi comuni e flag associati:
a
- Quando questo attributo è impostato, il file può essere aperto solo in modalità di aggiunta (append) per la scrittura.A
- Quando un file con questo set di attributi è aperto, il suo recordatime
(ora di accesso) non viene modificato.atime
è l'ultima volta che il file è stato aperto da qualche comando o applicazione.e
- Questo attributo indica che il file utilizza le estensioni per mappare i blocchi sul disco. L'attributoe
non può essere modificato conchattr
.i
- Questo attributo indica che il file non è modificabile, il che significa che il file non può essere eliminato o rinominato.
Per un elenco completo di tutti gli attributi e flag di file, digita il comando man chattr
sul tuo terminale:
man chattr
Per impostazione predefinita, gli attributi del file non vengono conservati quando si copia un file con comandi come cp
o rsync
.
Esempi del comando chattr
Uno degli usi comuni di chattr
è impostare il flag non modificabile su un file o una directory per impedire agli utenti di eliminare o rinominare il file.
È possibile visualizzare gli attributi del file con il comando lsattr
:
lsattr todo.txt
L'output seguente mostra che è impostato solo il flag e
:
--------------e----- todo.txt
Per rendere il file immutabile, aggiungi il flag i
con l'operatore +
agli attributi esistenti:
sudo chattr +i todo.txt
Stiamo usando sudo perché solo root può cambiare il flag immutabile.
Conferma che l'attributo è stato aggiunto:
lsattr todo.txt
----i---------e----- todo.txt
Per annullare le modifiche e rimuovere il flag immutabile, utilizzare l'operatore -
:
sudo chattr +i todo.txt
Con chattr
, puoi aggiungere o rimuovere più attributi contemporaneamente. Ad esempio, per rendere il file immutabile e dire al kernel di non tenere traccia dell'ultimo accesso, dovresti usare:
sudo chattr +iA todo.txt
L'ultimo operatore che puoi utilizzare è l'operatore =
. Ad esempio, per impostare l'attributo e
come unico attributo, dovresti eseguire:
sudo chattr "=e" todo.txt
Si noti che l'operatore e il flag sono racchiusi tra virgolette, per evitare l'interpretazione della shell del carattere +
.
Conclusione
chattr
è uno strumento da riga di comando per modificare gli attributi di file su un file system Linux.