¿Qué es Linux para SET FILE / ERASE_ON_DELETE?

16

En VMS, se puede indicar al sistema de archivos que escriba basura sobre el contenido existente de un archivo cuando se elimina. Aquí está el comando DCL para identificar el archivo para este tipo de tratamiento:

 $ SET FILE/ERASE_ON_DELETE SAMPLE.TXT

Esto permite que la política se establezca en un punto en el tiempo, luego los usuarios posteriores del archivo no tienen que manejar ese detalle de seguridad. Una eliminación estándar que elimina el nombre del archivo del directorio y libera el espacio para que otro archivo lo use también modificará el contenido existente para evitar que el siguiente usuario lo lea. La eliminación normal:

$ DELETE SAMPLE.TXT.*

¿Qué es Linux para esto?

CW Holeman II
fuente

Respuestas:

19

Esto solo es compatible con algunos sistemas de archivos Linux:

chattr +s sample.txt

puede (o no) hacer lo que quiera.

De man chattr:

NAME
       chattr - change file attributes on a Linux second extended file system
...
       When a file with the ‘s’ attribute set is deleted, its blocks are
       zeroed and written back to the disk.  Note: please make sure to read
       the bugs and limitations section at the end of this document.
...
BUGS AND LIMITATIONS
       The  ‘c’, ’s’, and ‘u’ attributes are not honored by the ext2
       and ext3 filesystems as implemented in the current mainline Linux
       kernels. These attributes may be implemented in future versions of
       the ext2 and ext3 filesystems.

No sé qué versiones específicas del núcleo de la línea principal (si las hay) implementan esto.

Anthon
fuente
2
Vaya, se aprende algo nuevo todos los días. ¿Xfs o zfs implementan esta bandera?
8

Tenga en cuenta que con la tecnología actual a veces no tendrá control sobre eso. Con los discos SSD, cada escritura puede realizarse en una ubicación diferente, manteniendo los datos antiguos ... y esto no puede ser anulado por el sistema operativo, el sistema de archivos o cualquier cosa en el software. Más en http://www.anandtech.com/printarticle.aspx?i=3531 .

liori
fuente
7

El equivalente más cercano que normalmente encontrará en los sistemas Unix es el cifrado. Una manera fácil de configurar un directorio encriptado en Linux (y la mayoría de los otros unices) es Encfs . Inicio rápido:

mkdir .ciphertext encrypted
encfs .ciphertext encrypted
# work on encrypted/file
fusermount -u encrypted

Hay varias otras opciones para el cifrado del sistema de archivos. Vea ¿Cómo cifrar y descifrar mejor un directorio a través de la línea de comandos o script? , ¿La mejor manera de hacer cifrado de disco completo? , y varios otros hilos en Super User , Server Fault y Ask Ubuntu .

No sé FILE/ERASE_ON_DELETEcontra qué amenazas protege. Tenga en cuenta que en Unix, los contenidos anteriores de un archivo reescrito o eliminado solo pueden ser vistos por el administrador del sistema o alguien con acceso físico a la unidad: no hay un "modo de creación rápida de archivos" que llene un archivo con datos aleatorios que simplemente resultó estar en la región del disco utilizada por el archivo.

Gilles 'SO- deja de ser malvado'
fuente
4

No estoy seguro de si esto es lo que estás buscando:

dd if=/dev/urandom of=FILE

Escribe bytes aleatorios en FILE.

Alan Haggai Alavi
fuente
No es exactamente lo mismo, pero probablemente sea lo más parecido a lo que vas a tener en Linux estándar.
Oh ya veo. Gracias por hacérmelo saber, Paul.
Alan Haggai Alavi