Não. Não por uma longa milha.
O que você está tentando fazer é impossível, então não é surpresa que você esteja falhando. O problema mais notório é que você nem está tentando sobrescrever o arquivo: … > $1
primeiro trunca o arquivo, o que marca todos os seus blocos como livres, e então a saída do comando é gravada em blocos recém-alocados. Não há razão para que os blocos recém-alocados sejam os que foram alocados do arquivo.
Se você executou dd if=/dev/urandom bs=1 count="$FILE_SIZE" of="$1"
, isso superaria esse obstáculo. Você pode ter certeza de ter substituído essa cópia do arquivo. Mas outras cópias do arquivo podem existir em outro lugar, como:
- Cópias temporárias criadas quando o arquivo foi gerado ou editado.
- Versões mais antigas, se o arquivo foi editado no passado.
- Backups que podem ter sido feitos por qualquer pessoa com acesso ao arquivo.
- Outras cópias existentes em um instantâneo do sistema de arquivos.
- Outras cópias que podem ter sido feitas dentro do dispositivo de armazenamento. No SSD, o apagamento é uma operação cara (tanto em termos de velocidade quanto em termos de desgaste no dispositivo), portanto, escrever novos conteúdos a partir de um setor, na verdade, apenas marca o setor a ser deletado mais tarde e grava os dados em outro setor .
A maneira segura de apagar dados é criptografar todo o disco desde o dia 1. Então, para ter certeza de que os dados não podem ser recuperados, você só precisa limpar a chave, que geralmente é armazenada em um local bem definido. De preferência, não armazene a chave real no disco: se a máquina inicializar com intervenção humana, use uma senha strong; se a chave inicializar sem intervenção humana, armazene a chave em um cartão inteligente ou em uma chave USB barata ou cartão SD que você possa destruir fisicamente sem remorso.
Tenha em mente que, como explicado acima, a simples substituição de dados em um SSD não garante que ele seja irrecuperável se o invasor tiver acesso ao hardware ou puder hackear o firmware do SSD. Você precisa usar a funcionalidade de exclusão segura do SSD, supondo que ele tenha uma que funcione (infelizmente, alguns modelos de SSD pretendem ter a capacidade, mas na verdade não apagam os dados).