"Secure Empty Trash" elimina in modo sicuro i file di versione nascosti per i documenti nel Cestino in OS X Lion?

12

La nuova funzione Versioni in Lion crea file nascosti che memorizzano vecchie versioni del documento su cui stai lavorando nel caso in cui desideri ripristinare una versione precedente del documento. Se trascino un documento nel cestino, quindi seleziona Secure Empty Trash dal menu Finder, i file della versione nascosta vengono eliminati in modo sicuro insieme al documento?

    
posta Phil M 27.07.2011 - 22:54
fonte

2 risposte

8

La mia ipotesi è no, ma questa non è una risposta definitiva.

Ho inizialmente creato un file .txt molto grande (~ 160 MB) e ho apportato modifiche al file in TextEdit. Come previsto, quel file e le sue versioni si sono mostrati in /.DocumentRevisions-V100/PerUID . I file sembravano essere da ~ 160 MB a ls , ma in base a du -h hanno usato 0B su disco. Il numero di collegamenti fisici per ogni file era 1. Una cartella denominata .cs (chunk storage) in /.DocumentRevisions-V100 era cresciuta di circa 110 MB.

Ogni volta che ho cambiato il file, è successo quanto segue in /.DocumentRevisions-V100 :

  1. Un file di ~ 160 MB è stato creato in /.DocumentRevisions-V100/staging/ . Il conteggio degli hard link per questo file è 1.
  2. Il file sembrava spostarsi a /.DocumentRevisions-V100/PerUID/<UID>/<#>/com.apple.documentVersions . Il conteggio degli hard link è rimasto 1.
  3. Quel ~ 160 MB di file è diventato 0B e la dimensione di /.DocumentRevisions-V100/.cs è cresciuta di circa 2 MB.

Lo spazio libero dell'unità ( df ) era coerente con ciò che mi diceva du . Lo spazio libero si ridurrebbe in modo significativo, quindi tornerà quasi a quello che era prima di salvare una nuova versione.

Successivamente, ho provato a distruggere il file con Secure Empty Trash. OS X sembra utilizzare un programma chiamato Locum per eliminare in modo sicuro il file. L'associazione di fs_usage a Locum mostra un sacco di letture e scritture nel file .txt originale. Mentre Locum sta facendo la sua cosa, tutte le versioni sotto /.DocumentRevisions-V100/PerUID sono ancora accessibili con dati intatti. Dopo che Locum ha terminato di scrivere sui dati, scollega il file .txt originale e le versioni in /.DocumentRevisions-V100/PerUID scompaiono improvvisamente. Locum quindi passa a qualsiasi altra cosa nel Cestino, senza mai toccare /.DocumentRevisions-V100 .

Qualunque cosa sia in /.DocumentRevisions-V100 non viene cancellata in modo sicuro.

EDIT: dovrei aggiungere che qualunque sia è in /.DocumentRevisions-V100 è in qualche modo offuscato o compresso (la cartella era solo ~ 120 MB). Non ho ancora letto le versioni o le sezioni del filesystem della recensione di Siracusa ... forse ci sono degli indizi lì dentro.

    
risposta data 06.08.2011 - 03:47
fonte
7

L'ho appena provato, e sembra che i vecchi file vengano effettivamente cancellati. Non importa se ho scelto Secure Empty Trash o semplicemente svuotato il cestino normalmente, sono stati anche eliminati.

Un po 'più in dettaglio:

Per verificare ciò, ho abilitato l'utente root a consentirmi di eseguire il peer in /.DocumentRevisions-V100 e i file all'interno. La struttura esatta di questa cartella e il suo contenuto sono spiegati meglio in John Siracusa's Lion review (Internals, Document Revisions).

Ho creato un paio di file, quindi ho apportato alcune modifiche, salvando nuove versioni. La cartella che conteneva le revisioni è stata popolata con nuovi file quando ho salvato nuove versioni. All'interno di questa cartella di livello superiore, c'è una cartella chiamata PerUID , che contiene sottocartelle per ogni account utente. Ogni cartella dell'account utente contiene una serie di cartelle numerate, una cartella per ogni file con revisioni salvate. Pertanto, le revisioni effettive vengono salvate come file di alcuni livelli in questa gerarchia, con nomi di file con hash. Lo svuotamento del cestino (in entrambi i casi) eliminerebbe questi file, ma la struttura della cartella precedente rimarrebbe al suo posto.

Prima di eliminare: %codice% Questa cartella ha ancora le versioni precedenti contenute in.

Dopo l'eliminazione: %codice% Questa cartella esiste ancora, ma è vuota.

Non ho ispezionato le altre cartelle in /.DocumentRevisions-V100/PerUID/0/5/com.apple.revisions , quindi non ho controllato i database contenuti al loro interno. Siracusa va più nel dettaglio, ma sembrano esistere per contenere database per tenere traccia delle modifiche e mappare i file dell'utente alle revisioni salvate dal sistema. Sono abbastanza sicuro che nessun contenuto del documento viene salvato lì, anche se non sono sicuro dei nomi dei file, e se i nomi dei file sono presenti, se sono sottoposti a hash o meno.

    
risposta data 28.07.2011 - 00:08
fonte

Leggi altre domande sui tag