Il comando chattr viene utilizzato per modificare gli attributi di un file o di una directory. La tabella seguente descrive alcune delle opzioni del comando chattr.
Opzione | Descrizione |
---|---|
-R | Modifica ricorsivamente gli attributi delle directory e il loro contenuto. |
-v {versione} | Imposta il numero di versione di un file. |
+i | Segna il file come di sola lettura o immutabile. Richiede i privilegi di superutente. |
-i | Rimuove l'attributo di sola lettura o immutabile del file. Richiede privilegi di superutente. |
La sintassi del comando chattr è:
# chattr [-R] [-v {version}] [+-{attributes}] {file/directory names}
Se si verifica l'errore seguente durante l'esecuzione del comando chattr:
chattr: command not found
puoi installare il pacchetto sottostante secondo la tua scelta di distribuzione:
Distribuzione | Comando |
---|---|
OS X | brew install e2fsprogs |
Debian | apt-get install e2fsprogs |
Ubuntu | apt-get install e2fsprogs |
Alpino | apk aggiunge e2fsprogs |
Arci Linux | pacman -S e2fsprogs |
Kali Linux | apt-get install e2fsprogs |
CentOS | yum install e2fsprogs |
Fedora | dnf installa e2fsprogs |
Raspbian | apt-get install e2fsprogs |
Rimozione dell'attributo -i (immutabile) dai file
Per rimuovere l'attributo "i" usa il comando seguente.
# chattr -i geek.txt # Unset "i" attribute
Dopo aver rimosso l'attributo vedrai che la sezione dei permessi diventerà vuota.
# lsattr geek.txt --------------- geek.txt
Rendere immutabile una directory usando chattr
Ora proviamo a proteggere una directory cambiando il suo attributo in modo ricorsivo usando il comando chattr. Qui ho una directory denominata data e tutti hanno accesso completo a quella directory in modo ricorsivo. Fare riferimento all'output di esempio di seguito.
# mkdir data # chmod -R 777 data/ # ls -l total 4 drwxrwxrwx. 2 root root 4096 Apr 24 04:25 data
Ora imposta l'attributo su quella directory.
# chattr +i data/ # lsattr ----i--------e- ./data
Puoi anche impostare l'attributo in modo ricorsivo usando l'opzione -R con chattr.
# chattr -R +i data/
Dopo aver impostato l'attributo nella directory, ora prova a eliminare, spostare o creare un file, sono sicuro che non ti sarà permesso farlo. Fare riferimento all'output di esempio di seguito.
# rmdir data/ # Deleting the Directory rmdir: failed to remove `data/': Operation not permitted
# rm -rf data/ # Deletiing the Directory Forcefully rm: cannot remove `data': Operation not permitted
# mv data/ mydata # Moving the Directory mv: cannot move `data/' to `mydata': Operation not permitted
# cd data/ # cat > test.txt # Creating a File in the directory bash: test.txt: Permission denied