Cloud with rain
.:G
G:.
0 and 1 serie, black on white
pulled card
myjsp.feelinglinux.com
ver. 1.1.9-4
Hallo, welcome to my world.
Here you can find some stuff about computer science.
<<< Enjoy your visit! >>>
0 and 1 serie, white on black

File immutabili

        Scritto: Giansante Gabriele, 2002     

Un'interessante aspetto dei filesystem ext2 ed ext3 sono i file immutabili (con le opportune patch del kernel anche per qualche altro filesystem).
Ogni file su tali partizioni ha una serie di attributi non visualizzabili direttamente con il comando "ls", fra cui quello dell'immutabilita'.

Cosa significa che un file e' immutabile?
Un file e' immutabile quando non puo' essere modificato o cancellato, ma puo' essere solo letto. Una volta che il flag di immutabilita' di un file viene attivato, neanche il superuser puo' modificare il file stesso (indipendentemente dai permessi).

Un file puo' essere reso immutabile con il comando
  chattr +i <nome_del_file>
Invece, per verificare che un file sia o non sia immutabile si puo' usare il comando
  lsattr <nome_del_file>
Solo il superuser puo' attivare o disattivare questo attributo.
Vediamo un esempio:
1   [root@nomehost /prova]# touch gabry.txt
2   [root@nomehost /prova]# ls -l gabry.txt
3   -rw-r--r--    1 root     root            0 lug  4 18:52 gabry.txt
4   [root@nomehost /prova]# lsattr gabry.txt
5   -------- gabry.txt
6   [root@nomehost /prova]# chattr +i gabry.txt
7   [root@nomehost /prova]# ls -l gabry.txt
8   -rw-r--r--    1 root     root            0 lug  4 18:52 gabry.txt
9   [root@nomehost /prova]# lsattr gabry.txt
10  ----i--- gabry.txt
11  [root@nomehost /prova]# rm gabry.txt
12  rm: remove write-protected file `gabry.txt'? Y
13  rm: cannot unlink `gabry.txt': Operation not permitted
14  [root@nomehost /prova]# chattr -i gabry.txt
15  [root@nomehost /prova]# lsattr gabry.txt
16  -------- gabry.txt
17  [root@nomehost /prova]# rm gabry.txt
18  rm: remove `gabry.txt'? Y
19  [root@nomehost /prova]#
L'attributo viene attivato con il comando alla riga 6. Come si puo' vedere dalle righe 3 e 7, con il tradizionale comando "ls" non si ha alcuna differenza.
Se si prova a cancellare "gabry.txt", la risposta e' negativa: non e' possibile farlo (11, 12, 13), neanche essendo "root"!!!

Appare quindi evidente come il rendere un file immutabile e' comodo sia come antidoto alla distrazione, sia come uno dei mezzi disponibili per aumentare la sicurezza.
Bisogna fare attenzione, pero', al tipo di file per cui si attiva l'immutabilita'. Se si rendesse necessario reinstallare un'applicazione o un package, infatti, si dovrebbero disattivare prima gli attributi di immutabilita' dei file coinvolti. Il rischio, altrimenti, e' l'avere una applicazione installata a meta' e probabilmente non funzionante.

Anche le directory possono essere rese immutabili, esattamente allo stesso modo dei file. Diamo un'occhiata al seguente esempio:
1  [root@nomehost /prova]# ls
2  prova  prova.c
3  [root@nomehost /prova]# cd ..
4  [root@nomehost /]# lsattr -d /prova/
5  -------- /prova/
6  [root@nomehost /]# chattr +i /prova
7  [root@nomehost /]# lsattr -d /prova/
8  ----i--- /prova/
9  [root@nomehost /]# cd /prova
10 [root@nomehost /prova]# vi prova.c
11 "prova.c" 5L, 51C written

12 [root@nomehost /prova]# touch gabry.txt
13 touch: gabry.txt: Permission denied
14 [root@nomehost /prova]# cd ..
15 [root@nomehost /]# chattr -i /prova
16 [root@nomehost /]# cd /prova
17 [root@nomehost /prova]# touch gabry.txt
18 [root@nomehost /prova]# 
Lo scopo finale e' la verifica delle proprieta' di immutabilita' su una directory. La directory prova, inizialmente contiene due file (righe 1,2).
Pubblicita'
Per vedere gli attributi particolari di una directory, occorre specificare il parametro "-d" a "lsattr": e' quello che viene fatto alle righe 4 e 7. Dopo aver attivato l'immutabilita' su "/prova" (6), provo a modificare uno dei file che contiene, ad esempio "prova.c". L'editor e' in grado di modificarlo (11).
La creazione di un file vuoto (12), invece, non ha successo.
Il motivo per cui questi due tipi di operazioni hanno avuto esito opposto e' semplice: con la riga 6, e' stata resa immutabile la directory e non tutto il suo contenuto.
Infatti, e' possibile modificare il file "prova.c" perche' non si agisce sulla directory ma su un file al suo interno. Un file nuovo non puo' essere creato perche' si sta scrivendo nella directory (aggiunta di un nuovo file = modifica directory). Lo stesso avviene se si cerca di cancellare "prova.c": non e' possibile perche' questa volta si sta modificando il contenuto della directory e non del file.
Una volta rimossa l'immutabilita' dalla directory (15) tutto ridiventa normale.

Ulteriori informazioni su "chattr" ed "lsattr" si possono reperire attraverso il manuale ( Manpage of LSATTR (1) , Manpage of CHATTR (1) ).
I comandi "chattr" e "lsattr" fanno parte del pacchetto "e2fsprogs".



Hai trovato utile questo articolo?
Aiutami a condividerlo o metti un "mi piace".
Grazie mille!


Gli strumenti di condivisione (Google+, Facebook) sono visibili in alto a destra solo dopo aver accettato la policy di utilizzo dei cookie per questo sito.
FAQ - Come faccio a cambiare la mia scelta?

 

Strumenti (myjsp.feelinglinux.com)
Gioco: allenamento con la tastiera Strumenti di codifica/decodifica URI (%-encoding) e Base64 Strumenti di calcolo online per IP e Reti
QUIZ GAME
Quiz game

Cerca @myjsp.feelinglinux.com

Pubblicita'