chattr (abbreviazione dalla lingua inglese di Change attributes, Cambia attributi) è un comando dei sistemi operativi Unix e Unix-like che consente di modificare gli attributi dei file memorizzati su un filesystem di tipo ext2/ext3.
chattr [ -RVf ] [ -v version ] [ modalità ] files
Le opzioni sono:
Le modalità possono essere impostate con il simbolo + per aggiungere un attributo o - per rimuoverlo
Il comando associato a chattr è lsattr che consente di elencare gli attributi impostati sui files.
Gli attributi estesi, che non vanno confusi con quelli impostabili con il comando chmod, riguardano particolarità specifiche dei filesystem ext2/3. In taluni casi questi attributi potrebbero essere impostati dolosamente da cracker o da rootkit per rendere più complessa l'eliminazione di un file di sistema compromesso o, viceversa, usato dai sistemisti per irrobustire un sistema (ad esempio settando il flag a sui file di log, rendendoli non cancellabili).
Generazione di un file di test:
# touch pippo.txt
Visualizzazione degli attributi:
# lsattr pippo.txt -----------------e- pippo.txt
Impostazione degli attributi di immutabilità con il comando chattr e nuova visualizzazione:
# chattr +i pippo.txt # lsattr pippo.txt ----i------------e- pippo.txt
Tentativo di rimozione del file con permessi di immutabilità:
# rm pippo.txt rm: impossibile rimuovere "pippo.txt": Operazione non permessa
Con i permessi di immutabilità è impossibile anche scrivere sul file:
# echo "ciao" >> pippo.txt bash: pippo.txt: Permesso negato
nonostante i permessi del file lo consentano:
# whoami root # ls -l pippo.txt -rw-r--r-- 1 root root 0 2011-08-23 22:53 pippo.txt
Alcuni attributi con il tempo non sono stati mantenuti, come il caso dell'attributo read only (r).