CHIARA SALVATORE

Cloud Infrastructure Administrator

Devops Engineer

LinkedIn  Twitter  Delicious  profilo Facebook solo per conoscenti

File e Inode in Linux

La struttura che identifica univocamente un singolo file all’interno di un filesystem è il cosidetto INODE: ciascun file è associato ad un inode in cui sono mantenute tutte le informazioni che lo riguardano come il tipo, i permessi di accesso, utente e gruppo proprietari, le dimensioni, i tempi e tutti i riferimenti ai settori del disco che contengono i dati.
L’unica informazione relativa al file non contenuta nell’inode è il suo nome; infatti il nome di un file non è una proprietà del file, ma semplicemente una etichetta associata all’inode.
Le directory non contengono effettivamente i file ma sono dei file “speciali” il cui contenuto è una lista di nomi con associato un inode che identifica un file.
Possono esistere più voci in directory diverse che puntano allo stesso inode. Due file che puntano allo stesso inode sono fisicamente lo stesso file, in questo caso di parla di HARD LINK. Ogni inode mantiene un contatore che indica il numero di link che gli sono stati fatti.
Un hard link può essere creato solo tra file residenti sul filesystem corrente, poiché su filesystem diversi lo stesso numero di inode potrebbe essere riutilizzato per un file diverso. Per ovviare a questo problema esistono i SYMBOLIC LINK: viene in questo caso creato un nuovo file con un suo inode ed il cui contenuto è il percorso da fare per arrivare al file a cui esso fa riferimento. E’ possibile creare link simbolici anche con le directory; ciò non è supportato in Linux per gli hard link, in quanto un eventuale collegamento diretto creato per sbaglio alla directory che contiene il collegamento stesso creerebbe un loop impossibile da eliminare.

Quando si va a cancellare un file, ciò che avviene in realtà è l’eliminazione della relativa voce da una directory e il decremento del numero di riferimenti presenti nell’inode.
Solo quando il numero di riferimenti ad un inode si annulla, lo spazio occupato da quei dati verrà dichiarato come disponibile e potrà essere riutilizzato. Finché questo spazio non sarà sovrascritto da altri dati, sarà comunque possibile recuperare i dati “cancellati”. Per rendere fin da subito impossibile il recupero di un precedente file, si possono usare comandi appositi come shred che ha il compito di sovrascrivere ripetutamente (di default 25 volte) un file specificato. Anche questo tool però risulta inefficace quando:

  • Il filesystem è strutturato a log o journaled, come JFS, ReiserFS, XFS o Ext3
  • Il filesystem è in RAID o è compresso
  • Eventuali file di backup di sistema possono contenere copie del file che non è possibile rimuovere con questo comando.

Un’altra possibile alternativa è il tool Secure-Delete; comprende 4 comandi (srm, smem, sfill, sswap) rispettivamente per la cancellazione sicura di file o directory, RAM, spazio libero su disco, e dati nella partizione swap. Invece di sovrascrivere il file con dati casuali, il Secure-Delete tool utilizza una combinazione di dati casuali, zeri e speciali valori sviluppati dal crittografo Peter Gutmann.

Post correlati

Posted in Computer notes | Tagged , , , , , , , , , | Leave a comment

Leave a Reply

“Be mindful of the living Force, my young Padawan.”
 Qui-Gon Jinn