Pergunta

documentação

Shred diz destruir "não está garantido para ser eficaz" (Veja abaixo). Então, se eu rasgar um documento no meu sistema de arquivos ext3 ou em um Raid, o que acontece? Faço para destruir parte do arquivo? Será que às vezes rasgar a coisa toda e às vezes não? ele pode destruir outras coisas? Será que só fragmente o cabeçalho do arquivo?

ATENÇÃO: Note que rasgar se baseia em uma premissa muito importante: que o sistema de arquivos substitui os dados no lugar. Isto é o maneira tradicional de fazer as coisas, mas muitos projetos modernos do sistema de arquivos não satisfazem esta suposição. O seguinte são exemplos de arquivo sistemas nos quais fragmento não é eficaz, ou não é garantido para ser eficaz nos modos de dez todo arquivo SYS:

  • sistemas de ficheiros com diário estruturado-log ou, tal como os fornecidos com AIX e Solaris (e JFS, ReiserFS, XFS, Ext3, etc.)

  • sistemas de arquivos que escrevem dados redundantes e continue mesmo se algumas gravações falhar, tais como sistemas de arquivos baseados em RAID

  • sistemas de arquivos que fazem instantâneos, como o servidor NFS da Network Appliance

  • sistemas de arquivos que o cache em locais temporários, como NFS versão 3 clientes

  • sistemas de arquivos compactados

No caso de sistemas de arquivos ext3, a declaração acima aplica-se (E fragmento é, assim, de limitada eficácia) apenas em dados = jornal modo, quais periódicos dados de arquivos, além de apenas metadados. Dentro tanto a data = ordered (padrão) e de dados = write-back modos, desfie funciona como de costume. modos ext3 journaling pode ser alterado através da adição a data = algo opção para o Monte opções para uma determinado sistema de arquivos no arquivo / etc / fstab, conforme documentado no montar página man (man mount).

Foi útil?

Solução

Todos os pingo faz é de substituição, flush, sucesso cheque, e repita. Ele não faz absolutamente nada para descobrir se sobrescrever um arquivo realmente resulta em blocos que continham sendo os dados originais substituído. Isso ocorre porque, sem saber as coisas não-padrão sobre o sistema de arquivos subjacente, não pode.

Assim, sistemas de arquivos journaling não irá substituir os blocos originais no lugar, porque isso iria detê-los a recuperar de forma limpa de erros onde a mudança é meio-escrita. Se os dados são registradas no diário, em seguida, cada passagem de rasgar pode ser escrita para um novo local no disco, caso em que nada é desfiado.

sistemas de arquivos RAID (dependendo do modo RAID) pode não substituir todas as cópias dos blocos originais. Se há redundância, você pode rasgar um disco mas não as outras (s), ou você pode achar que diferentes passes têm afetado discos diferentes de tal forma que cada disco é parcialmente desfiado.

Em qualquer sistema de arquivos, o hardware do disco em si pode apenas assim acontecer para detectar um erro (ou, no caso de flash, aplicar desgaste nivelamento mesmo sem um erro) e remapear o bloco lógico para um bloco físico diferente, de tal forma que o original é marcado com defeito (ou não utilizado), mas nunca substituído.

sistemas de arquivos comprimido não pode substituir os blocos originais, porque os dados com os quais fragmente substitui ou é aleatória ou extremamente compressíveis em cada passagem, e um ou outro pode causar o arquivo para mudar radicalmente seu tamanho compactado e, portanto, ser realocados. NTFS armazena pequenos arquivos na MFT, e quando rodadas destruir até o tamanho do arquivo para um múltiplo de um bloco, o seu primeiro "Substituir" costuma fazer o arquivo para ser realocados para um novo local, que irá então ser inutilmente desfiado deixando a pouco ranhura MFT intocado.

Shred não consegue detectar alguma destas condições (a menos que você tem uma implementação especial que aborda diretamente seus fs e motorista bloquear - e eu não sei se qualquer dessas coisas realmente existem). É por isso que é mais confiável quando usado em um disco todo do que em um sistema de arquivos.

Shred não destrói "outras coisas", no sentido de outros arquivos. Em alguns dos casos acima que destrói blocos previamente não alocados em vez dos blocos que contêm os dados. Ele também não rasgar quaisquer metadados no sistema de arquivos (que eu acho que é o que você quer dizer com "cabeçalho do arquivo"). A opção -u não tentar substituir o nome do arquivo, renomeando para um novo nome do mesmo comprimento e, em seguida, encurtando que um carácter de cada vez até 1 char, antes de excluir o arquivo. Você pode ver isso em ação se você especificar -v também.

Outras dicas

As outras respostas já ter feito um bom trabalho de explicar por que pingo pode não ser capaz de fazer o seu trabalho corretamente.

Isto pode ser resumido como:

shred só funciona em partições, não arquivos individuais

Como explicado em outras respostas, se você rasgar um único arquivo:

  • não há garantia dos dados reais é realmente substituído, porque o sistema de arquivos pode enviar gravações para o mesmo arquivo em diferentes locais no disco
  • não há garantia de os fs não criar cópias dos dados em outros lugares
  • fs pode até mesmo decidir "otimizar longe" suas gravações, porque você está escrevendo o mesmo arquivo várias vezes (sincronização é suposto para evitar isso, mas novamente: nenhuma garantia)

Mas, mesmo se você sabe que o sistema de arquivos não fazer qualquer uma das coisas desagradáveis ??acima, você também tem que considerar que muitas aplicações irá criar automaticamente cópias de dados de arquivo:

  • arquivos de recuperação de falhas que processadores de texto, editores (como vim) etc. vai escrever periodicamente
  • em miniatura / preview arquivos em gestores de ficheiros (às vezes até mesmo para não-imagefiles)
  • arquivos temporários que muitos aplicativos usam

Então, curta de verificar todos os binários que você usa para trabalhar com seus dados, ele pode ter sido copiado direita, esquerda e centro sem você saber. A única maneira realista é sempre fragmente partições completos (ou discos).

A preocupação é que os dados podem existir em mais de um lugar no disco. Quando os dados existem em exatamente um local, em seguida, rasgar pode deterministically "apagar" essa informação. No entanto, sistemas de arquivos que outros sistemas de arquivos avançados revista ou pode escrever dados do seu arquivo em vários locais, temporariamente, no disco. Shred - após o fato - não tem forma de saber sobre isso e não tem nenhuma maneira de saber onde os dados podem ter sido temporariamente gravados no disco. Assim, não tem como apagar ou sobrescrever os setores de disco.

Imagine isto: Você escreve um arquivo no disco em um sistema de arquivos com diário que as revistas não apenas metadados, mas também os dados do arquivo. Os dados do arquivo é escrito temporariamente para a revista, e depois por escrito à sua localização final. Agora você usa rasgar no arquivo. A localização final, onde os dados foi escrito pode ser substituído com segurança com pingo. No entanto, desfie teria que ter alguma forma de garantir que os setores na revista que continham temporariamente o conteúdo de seu arquivo também são substituídos para ser capaz de prometer que o arquivo não é verdadeiramente recuperável. Imagine um sistema de arquivo onde a revista não é ainda em um local fixo ou de um comprimento fixo.

Se você estiver usando rasgar, então você está tentando garantir que não há nenhuma maneira possível seus dados podem ser reconstruídos. Os autores do fragmento estão sendo honestos que existem algumas condições fora de seu controle, onde eles não podem fazer esta garantia.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top