O Shred é um utilitário muito bacana dos sistemas GNU/Linux que te permite excluir arquivos, pastas e partições com muito mais segurança. Ele sobrescreve os dados repetidamente, de modo que a recuperação dos mesmos é exponencialmente dificultada, mesmo utilizando tecnologias específicas pra isso.
Eu consigo tenho o costume de levar comigo o meu certificado da Associação Internacional de Crianças Paranoicas, e tenho o lema de que segurança básica nunca é demais quando se trata de dados pessoais e empresariais, e o shred, que já é nativo de muitas distribuições Linux, facilita a exclusão mais segura de fotos, vídeos, arquivos e até mesmo dados de partições, sendo que suas iterações podem ser customizadas para realizar várias sobrescritas com dados aleatórios no local do arquivo.
Sua utilização é bem simples, e pode ser facilmente entendida pelo helper do pacote.
matheus@fidelis:~$ shred --help
Usage: shred [OPTION]... FILE...
Overwrite the specified FILE(s) repeatedly, in order to make it harder
for even very expensive hardware probing to recover the data.
If FILE is -, shred standard output.
Mandatory arguments to long options are mandatory for short options too.
-f, --force change permissions to allow writing if necessary
-n, --iterations=N overwrite N times instead of the default (3)
--random-source=FILE get random bytes from FILE
-s, --size=N shred this many bytes (suffixes like K, M, G accepted)
-u truncate and remove file after overwriting
--remove[=HOW] like -u but give control on HOW to delete; See below
-v, --verbose show progress
-x, --exact do not round file sizes up to the next full block;
this is the default for non-regular files
-z, --zero add a final overwrite with zeros to hide shredding
--help display this help and exit
--version output version information and exit
Utilização básica:
# shred nomedoarquivo.extensao -u
Utilização no modo verbose:
Para ter uma noção maior do que o shred está fazendo, podemos utilizar o verbose.
# shred -v -u documento.odt
matheus@fidelis:~$ shred -v -u Itil.odt
shred: Itil.odt: pass 1/3 (random)...
shred: Itil.odt: pass 2/3 (random)...
shred: Itil.odt: pass 3/3 (random)...
shred: Itil.odt: removing
shred: Itil.odt: renamed to 00000000
shred: 00000000: renamed to 0000000
shred: 0000000: renamed to 000000
shred: 000000: renamed to 00000
shred: 00000: renamed to 0000
shred: 0000: renamed to 000
shred: 000: renamed to 00
shred: 00: renamed to 0
shred: Itil.odt: removed
Especificando o número sobrescritas o arquivo (Default: 3):
Por default, o Shred sobrescreve o espaço do arquivo com dados aleatórios 3 vezes, porém é possível especificar com o parâmetro -n o numero de iterações que será realizada naquele espaço alocado na memória.
# shred -n 10 -v -u teste.txt
Apenas destruindo o conteúdo do arquivo:
É possível somente embaralhar o conteúdo do arquivo. Esse caso é meio inútil, mas de qualquer forma fica o exemplo pra alguma situação.
# shred teste.odt
Algumas observações:
ResponderExcluirCUIDADO: Note que shred confia em uma hipótese muito importante:
que o sistema de arquivos sobrescreve os dados no lugar. Esta é a maneira
tradicional de se fazer, mas projetos modernos de sistemas de arquivos não
satisfazem essa hipótese. Os exemplos a seguir são de sistemas de arquivos aos
quais shred não faz efeito ou não tem eficácia garantida em todos os modos
do sistema de arquivos:
* sistemas de arquivos em diário ou estruturado em registros, como os
fornecidos com AIX e Solaris (e JFS, ReiserFS, XFS, Ext3, etc.)
* sistemas de arquivos que escrevem dados redundantes e continuam mesmo se
ocorrerem erros de escrita, tais como os baseados em RAID
* sistemas de arquivo que fazem "snapshots", tal como o servidor Network
Appliance's NFS
* sistemas de arquivos que fazem cache em locais temporários, como os clientes
de NFS versão 3.
* sistemas de arquivos comprimidos