De acuerdo con la página de manual de rm, rm -P ...
sobrescribe los elementos tres veces para eliminarlos de forma segura:
-P Sobrescribir archivos normales antes de eliminarlos. Los archivos se
sobrescriben tres veces, primero con el patrón de bytes 0xff,
luego 0x00 y luego 0xff nuevamente, antes de que se eliminen.
¿ Es posible eliminar elementos de forma segura con una sola pasada rm ...
?
Notas:
No, eso no es posible con el comando rm estándar.
Puede descargar el código fuente de rm (rm.c) de opensource.apple.com y editar la función rm_overwrite() para realizar una sola pasada.
O puede usar un programa alternativo que sobrescriba el archivo y luego usar rm para eliminarlo. Tal programa alternativo podría ser simplemente usar cat o dd para copiar bytes de /dev/urandom o /dev/null sobre el archivo.
No puedes rm
hacer algo que no tiene la capacidad de hacer. Por otro lado srm
fue diseñado expresamente para este fin. Entonces, ¿cómo se llega rm
a hacer algo que srm
sale de la caja?
Si desea "usar" (el comando, no el programa real) rm
para hacer un solo paso, use un alias . Para ello, necesitarás tenerlo srm
instalado en tu sistema (disponible en MacPorts ).
$ alias rm="srm -s"
Ahora, cada vez que emita el comando rm
, en realidad llamará srm
con el -s
indicador de "sobrescritura de un solo paso".
Ejemplo de uso: suponga que tiene un directorio llamado foo
con una cantidad de archivos que desea eliminar. Emitir el comando
$ rm -rf foo
y lo que realmente se ejecutará es:
$ srm -s -rf foo
Edite su ~/.bash_profile
y agregue la entrada de alias. Reinicie su sesión de bash y el " rm
comando de un paso" ahora estará disponible.
Como se mencionó en esta respuesta, la sobrescritura de archivos ya no es una forma adecuada de garantizar que los archivos se eliminen de forma segura en máquinas con unidades SSD, ya que la forma en que se almacenan/eliminan los archivos en ellas es diferente debido a los sistemas subyacentes que brindan nivelación de desgaste, eficiencia , etc. Además, los sistemas de archivos de diario pueden complicar las cosas.
El mejor enfoque es usar FileVault de Apple para que los archivos eliminados solo persistan potencialmente como fragmentos cifrados.
Si está utilizando otros tipos de unidades o más antiguos, la sobrescritura puede ayudar a garantizar que los archivos se eliminen correctamente. En cuyo caso, hay GNU gshred
que se pueden instalar como parte del paquete GNU coreutils , por ejemplo, usando brew:
brew install coreutils
La gshred
herramienta permite controlar la cantidad de sobrescrituras con el -n
argumento y también permite controlar cómo se produce la eliminación con el --remove
argumento. Entonces, para sobrescribir solo una vez y unlink
usar el archivo:
gshred -n 1 --remove=unlink file_to_overwrite_and_delete
Alano
srm
? Esto es para lo que está diseñado.