Como *realmente* remover arquivos do Linux?

Provalvemente você remove arquivos usando rm file_passwords.txt.asc, que neste caso é um arquívo criptografado em AES256 de senhas. Mas você sabia que ao fazer isso o arquívo não é deletado do seu computador?

Por que?

No back-end desse processo o seu PC está apenas "abrindo" os blocos de memórias, onde o arquivo está armazenado, para que eles possam ser sobrescrevido. Muitas das vezes, o arquívo pode ser recuperado em até 99%, e obter o conteúdo dele mesmo estando "deletado".

Como deletar de forma absoluta

Para isso, no Linux normalmente temos o comando shred, ele faz vários processos para que o arquívo não seja recuperado. Nem mesmo a NASA consegue recuperar arquívos apagado assim.

Vale lebrar que, dependendo do tamanho do arquívo e do número de interações, esse processo de deletar arquivos pode demorar minutos, horas ou até dias. Mas para arquívos com menos de 1~5 GB é bem rápido dependendo do seu processador.

Comandos

.../run $ cat file_passwords.txt
12345678
passwords
senhareal
senhasenha
1234321000

$ shred -n 10 file_passwords.txt.asc

  • -n número de interações

Após executar esse comando, vamos visualizar o arquivo que ainda não foi apagado. Espere, vamos chegar lá.

$ cat file_passwords.txt
{ߊO�\@�|d [5�xv&1X���uv;�� �<\ ��JDmQ����)`6�'יߜ>�N_"M�"ƍAvrr���Fv���f,Z rz�
                                      �B2&*˵Ӯ�Ab^�1
eW��ߦwÌ�0J:f7'2:}h?FM僒7ى�b�/,,�r!ޖ?>358΂�oO���o`�*m�]eTEM�?Nwf����}o�ʃ%k~Ta2Ou.'b_�J½4~0Bɼ�"���IIGU@C5m(Y��\3��˖�Y,ݓ^|]Ԍ1#��U
0=M(`F�eYGy$�Y!Yc3iiqG}$#nQB�ə�       Km0؅ez^ʜ"Iaê/�7dgalS�Cdr���-�h�y(CMˊ��رu9s"܆H/
ν\UY�C&�~
...

Você deve observar que o arquívo teve uma mudança. Ele foi bagunçado aleatoriamente, mas espere a memória ainda não foi "liberada".

Vamos terminar logo este trabalho, e deletar de uma vez e dar um set no bloco de memória para 0 como veio de fábrica.

$ sherd -n 4 -u -z -v file_passwrods.txt

  • -u desalocar e remover o arquívo
  • -z "zerar" os blocos
  • -v modo verbose

Finalização

Claro, remover arquívos com shred pode ser apenas quando você quer apagar arquívos sensíveis ou coisas importantes, imagens importante, etc. Caso queira adicionar o comando srm para se referir Secure Remove adicione isso em seu .bashrc:

  • alias srm="shred -n 5 -z -u -v"

Use source ~/.bashrc e pronto.

Fonte

  • Canal slackjeff
  • man shred manual no Linux