Respostas:
Use o find
comando para executar shred
recursivamente:
find <dir> -type f -exec shred {} \;
man shred
.
srm
da resposta de @ Cookie, pelo menos, tentará resolver esse problema).
-exec shred {} +
para torná-lo mais rápido, pois o shred aceita vários argumentos.
Cuidado com o fragmento!
Na página de fragmentos:
CUIDADO: Observe que o shred depende de uma suposição muito importante: que o sistema de arquivos substitua os dados no local. Essa é a maneira tradicional de fazer as coisas, mas muitos projetos modernos de sistemas de arquivos não atendem a essa suposição. A seguir, exemplos de sistemas de arquivos nos quais o shred não é eficaz ou não é garantido que seja eficaz em todos os modos do sistema de arquivos:
sistemas de arquivos estruturados em log ou registrados em diário, como os fornecidos com o AIX e Solaris (e JFS, ReiserFS, XFS, Ext3, etc.)
sistemas de arquivos que gravam dados redundantes e continuam mesmo que algumas gravações falhem, como sistemas de arquivos baseados em RAID
sistemas de arquivos que fazem instantâneos, como o servidor NFS do Network Appliance
sistemas de arquivos que fazem cache em locais temporários, como clientes NFS versão 3
sistemas de arquivos compactados
No caso de sistemas de arquivos ext3, a isenção de responsabilidade acima se aplica (e a fragmentação é, portanto, de eficácia limitada) apenas no modo data = journal, que registra os dados dos arquivos além dos metadados. Nos modos data = ordenado (padrão) e data = write-back, o shred funciona normalmente. Os modos de registro em diário do Ext3 podem ser alterados adicionando a opção data = something às opções de montagem de um sistema de arquivos específico no arquivo / etc / fstab, conforme documentado na página de manual de montagem (montagem de homem).
Além disso, os backups do sistema de arquivos e os espelhos remotos podem conter cópias do arquivo que não podem ser removidas e que permitem recuperar um arquivo fragmentado posteriormente.
Solução: use um sistema de arquivos criptografado e exclua seus arquivos.
shred
e a criptografia de dados impedem a leitura dos dados de um dispositivo de armazenamento offline (pense em roubo ou polícia), com a criptografia de dados com o benefício adicional de proteger todos os arquivos, e não apenas os que foram excluídos (corretamente). Depois que o sistema de arquivos é montado, voltamos às boas permissões de unix em ambos os casos e a proteção de dados se torna uma tarefa de segurança do sistema operacional e administração adequada do sistema novamente. A criptografia inicial do sistema de arquivos definitivamente não é pior para proteger os dados em repouso do que o uso estratégico de shred
!
Use a exclusão segura.
sudo apt-get install secure-delete
srm -r pathname
Feito. A exclusão segura é muito mais paranóica que a fragmentação, usando 38 passes em vez de 3. Para fazer um único passe rápido, use
srm -rfll pathname
O fll fornece um gerador de dados menos aleatório e apenas uma única passagem.
find
métodos baseados em propostas que tentarão também apagar nomes de arquivos armazenados renomeando arquivos antes de truncá-los e desvinculá-los.
Combinando esta resposta com as opções mais conhecidas para fragmentação usando este link de estouro de pilha ' Excluindo arquivos permanentemente e com segurança no CentOS ':
find <directory> -depth -type f -exec shred -v -n 1 -z -u {} \;
Editar: esteja ciente de que a melhor resposta para fragmentar um único arquivo força uma sincronização que grava alterações na mídia antes de excluir o arquivo, porque alguns ou todos os sistemas de arquivos registrados no diário possuem um buffer.
Se possível, o comando find deve chamar um script de shell no arquivo que é executado:
shred -v -n 1 /path/to/your/file #overwriting with random data
sync #forcing a sync of the buffers to the disk
shred -v -n 0 -z -u /path/to/your/file #overwriting with zeroes and remove the file
em cada arquivo.
rm -rvf $1
ao script shell (onde $ 1 é o / path / to / o arquivo / aprovada na partir da {}
expansão da find... -exec
)
depth
faz aqui? Também certeza sobre a barra invertida
find /your/directory -exec shred {} \;
find [dirname] -depth -type f -exec shred -n1 {} \;
Isso realiza uma pesquisa profunda dos arquivos no diretório [dirname] e, em seguida, executa o shred -n1
comando em cada arquivo. Ao remover arquivos e / ou diretórios, adicionar -depth
como padrão é um bom hábito, mesmo que não seja estritamente necessário para este caso. Ao executar esse tipo de comando com, em rm -rf
vez de shred
, -depth
é necessário para garantir que os diretórios não sejam excluídos antes que o conteúdo dos diretórios tente ser excluído (causando erros).
shred -N 1
, porque o padrão, triturando 3 vezes, é o óleo de cobra. Uma vez é suficiente ou 30 vezes não funcionará.
O shred
método mais completo que encontrei, que também inclui a remoção de diretório, é find
chamar um script para ter shred
:
Esse método também lida corretamente com nomes de arquivos com espaços neles.
Primeiro - o shred
script (eu nomeei meu dirShredder.sh
e o armazenei no /root
diretório:
shred -v -n 1 "$1" #overwriting with random data
sync #forcing a sync of the buffers to the disk
shred -v -n 0 -z -u "$1" #overwriting with zeroes and remove the file
rm -rvf "$1" # call rm to remove the directories
Em seguida, chame o script assim:
find /volume1/pathToShred/ -mindepth 1 -depth -exec /root/dirShredder.sh "{}" \;
Certifique-se de marcar o killit.sh
arquivo executável ( chmod +x
) e, claro, atualize o caminho para o diretório que você deseja destruir e dirShredder.sh
se o armazenar em outro lugar.
NOTA BENE - shred
apresenta problemas nos sistemas de arquivos Copy-on-Write (ZFS, BTRFS, et al) e até nos sistemas de arquivos Journaling. Não existe uma "melhor" maneira realmente aceita de lidar com isso que eu encontrei além de "sistemas de arquivos criptografados", mas não tenho certeza de quão eficaz isso é após o fato.
O mais próximo que você pode chegar é sobrescrever todo o espaço vazio na unidade com dados aleatórios após as operações de fragmentação (não zeros, parece que isso nem sempre é confiável.) Além disso, os SSDs também podem ter outras considerações (como TRIM).
Não vou abordar essas questões aqui, existem outras respostas do Stack (resposta do usuário desconhecido @ nesta pergunta, por exemplo) e muitas discussões em toda a rede que cobrem esses tópicos, então procure-as se precisar desse nível de segurança.