¿"Secure Empty Trash" elimina de forma segura los archivos de versión ocultos para documentos en la Papelera en OS X Lion?

12

La nueva función Versiones en Lion crea archivos ocultos que almacenan versiones antiguas del documento en el que está trabajando en caso de que desee volver a alguna versión anterior del documento. Si arrastro un documento a la Papelera, luego selecciono Secure Empty Trash en el menú Finder, ¿se borran de manera segura los archivos de la versión oculta junto con el documento?

Phil M
fuente
¿Y qué hay de las copias en el nuevo caché local de máquinas del tiempo?
Thilo
@thilo, no es probable en absoluto, ¿por qué no hacer eso como una pregunta propia?
bmike

Respuestas:

7

Mi suposición es no, pero esta no es una respuesta definitiva.

Primero creé un archivo .txt muy grande (~ 160 MB) e hice cambios en el archivo en TextEdit. Como se esperaba, ese archivo y sus versiones aparecieron en /.DocumentRevisions-V100/PerUID. Los archivos parecían ser de ~ 160 MB ls, pero según du -husaron 0B en el disco. El recuento de enlaces duros para cada archivo fue 1. Una carpeta llamada .cs(almacenamiento de fragmentos) bajo /.DocumentRevisions-V100había crecido en aproximadamente 110 MB.

Cada vez que cambiaba el archivo, sucedía lo siguiente en /.DocumentRevisions-V100:

  1. Se creó un archivo de ~ 160 MB en /.DocumentRevisions-V100/staging/. El recuento de enlaces duros para este archivo es 1.
  2. Ese archivo parecía moverse a /.DocumentRevisions-V100/PerUID/<UID>/<#>/com.apple.documentVersions. El recuento de enlaces duros permaneció 1.
  3. Ese archivo de ~ 160 MB se convirtió en 0B, y el tamaño /.DocumentRevisions-V100/.cscreció en aproximadamente 2 MB.

El espacio libre de la unidad ( df) fue consistente con lo duque me dijo. El espacio libre se reduciría significativamente y luego volvería a casi lo que era antes de guardar una nueva versión.

Luego, traté de destruir el archivo con Secure Empty Trash. OS X parece utilizar un programa llamado Locumpara eliminar de forma segura el archivo. Adjuntar fs_usagea Locummuestra una gran cantidad de lecturas y escrituras en el archivo .txt original. Mientras Locumhace lo suyo, /.DocumentRevisions-V100/PerUIDtodavía se puede acceder a todas las versiones con datos intactos. Después de Locumterminar de escribir sobre los datos, desvincula el archivo .txt original y las versiones /.DocumentRevisions-V100/PerUIDdesaparecen repentinamente. Locumluego pasa a cualquier otra cosa en la Papelera, sin tocar nunca /.DocumentRevisions-V100.

Lo que sea que esté adentro /.DocumentRevisions-V100no se borrará de manera segura.

EDITAR: Debo agregar que lo que sea que esté adentro /.DocumentRevisions-V100está de alguna manera ofuscado o comprimido (la carpeta tenía solo ~ 120 MB). Todavía no he leído las versiones o las secciones del sistema de archivos de la revisión de Siracusa ... tal vez hay pistas allí.

Menta Helada
fuente
7

Acabo de probar esto, y parece que los archivos más antiguos sí se eliminan. No importaba si elegía Secure Empty Trash o simplemente vaciaba la basura normalmente, también se eliminaron.

Un poco más de detalle:

Para probar esto, habilité al usuario root para que me permitiera mirar /.DocumentRevisions-V100y los archivos dentro. La estructura exacta de esta carpeta y su contenido se explican mejor en la revisión Lion de John Siracusa (Internals, Document Revisions).

Creé un par de archivos, luego hice algunos cambios, guardando nuevas versiones. La carpeta que contenía las revisiones se rellenó con nuevos archivos a medida que guardaba nuevas versiones. Dentro de esta carpeta de nivel superior, hay una carpeta llamada PerUID, que contiene subcarpetas para cada cuenta de usuario. Cada carpeta de cuenta de usuario contiene una serie de carpetas numeradas, una carpeta para cada archivo que tiene las revisiones guardadas. Por lo tanto, las revisiones reales se guardan como archivos unos niveles más abajo en esta jerarquía, con nombres de archivo hash. Vaciar la papelera (de cualquier manera) eliminaría estos archivos, pero la estructura de carpetas anterior permanecería en su lugar.

Antes de eliminar: /.DocumentRevisions-V100/PerUID/0/5/com.apple.revisions esta carpeta todavía tiene las versiones anteriores contenidas dentro.

Después de eliminar: /.DocumentRevisions-V100/PerUID/0/5/com.apple.revisions esta carpeta todavía existe, pero está vacía.

No inspeccioné las otras carpetas dentro /.DocumentRevisions-V100/, por lo que no verifiqué las bases de datos que contienen. Siracusa entra en más detalles, pero parecen existir para contener bases de datos para rastrear cambios y asignar los archivos del usuario a las revisiones guardadas por el sistema. Estoy bastante seguro de que no se guardan contenidos del documento allí, aunque no estoy seguro acerca de los nombres de los archivos, y si los nombres de los archivos están presentes, si están en hash o no.

Transparente
fuente
2
Este es un buen progreso, pero creo que esto solo prueba que los archivos se eliminaron, no necesariamente se eliminaron de forma segura. Para probar la eliminación segura, creo que necesitaría consultar la documentación del desarrollador de Apple o ejecutar el software de recuperación de archivos y ver qué es recuperable.
Phil M
ah, lo siento, te entendí mal. debería ser un experimento bastante simple para que alguien pueda reproducir y ejecutar una aplicación de recuperación. No estoy en ADC, así que no soy de mucha utilidad allí.
Gauzy
iostat y una Mac "inmóvil" debería facilitar la visualización del ancho de banda de escritura.
bmike