Usando `shred` na linha de comando

44

Preciso apagar com segurança alguns arquivos. Eu já usei shredem sistemas Linux antes, então olhei em volta e descobri que isso shredfaz parte do coreutilspacote em macports. Eu fiz port install coreutilspara instalar o coreutils, mas ainda não consigo encontrar shredna linha de comando.

Como posso shredtrabalhar na linha de comando do meu mac? Se isso importa, estou usando o Mac OS X 10.7.5 (Lion)

inspectorG4dget
fonte
Observe que a segurança de shreddepende do sistema de arquivos que está sendo usado, não sei como é eficaz no HFS.
Flimm
1
O shred não é eficaz em sistemas de arquivos com diário, é por isso que não está disponível. SRM também foi encontrado para não ser eficaz. Basta apagar normalmente e rezar parece ser a única esperança em HFS + journaled
Kevin Johnson
Sério?! Você poderia falar sobre por que não é eficaz?
inspectorG4dget
1
Os sistemas de arquivos registrados no diário registram as alterações que serão feitas antes da gravação no disco. Ele pode ser usado para recuperar a corrupção de arquivos ou recuperar os dados que você deseja que tenham sido destruídos. Veja en.wikipedia.org/wiki/Journaling_file_system
Alex Mooney

Respostas:

27

port install coreutilsadiciona um prefixo ag aos nomes dos binários, então shred é /opt/local/bin/gshred.

Lri
fonte
9
brew install coreutilstorna gshreddisponível para aqueles que utilizam Homebrew.
Davidjb
59

O OSX possui um comando srminterno para remover arquivos com segurança. Consulte https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/srm.1.html . Você também pode rm -Psubstituir os arquivos com sequências de bytes três vezes.

Com o sierra ou mais recente, o macOS não inclui mais o srm. Mas os usuários podem instalá-lo com homebrew:

brew install homebrew/dupes/srm && brew link --force homebrew/dupes/srm
Lily Hahn
fonte
1
Claro, mas o shred permite definir o número de substituições. Essas ferramentas não. Alguma idéia de como obter essa funcionalidade?
inspectorG4dget
2
+1 Excelente resposta. Eu não sabia que o srmcomando existia. Ele substitui, renomeia e trunca o arquivo antes de excluí-lo. Isso, além das 7 passagens compatíveis com o DoD dos EUA (0xF6, 0x00, 0xFF, aleatório, 0x00, 0xFF, aleatório) (opção -m) garante que o arquivo seja irrecuperável.
Tulains Córdova 23/09/14
3
A partir do macOS Sierra, srmnão está mais incluído.
y3sh 22/09/16
1
Os usuários do macOS podem instalar srmcom o comando brew brew install homebrew/dupes/srm.
hd.deman
1
homebrew/dupesagora está obsoleto. Parece que srmfoi removido e não migrado para homebrew-core.
Davidjb
18

A resposta de @ user495470 está correta para a pergunta feita. O problema não é nem srmou shredrealmente fazer sentido para sistemas modernos.

Isso se deve principalmente aos SSDs. Ao contrário dos discos magnéticos, os modernos discos habilitados para TRIM limpam automaticamente os dados excluídos em segundo plano.

Os SSDs também realizam o nivelamento de desgaste. Isso faz com que as tentativas de "sobrescrever" um arquivo sejam fúteis (você gravará em um local físico diferente) e indesejáveis ​​(contribui desnecessariamente para o desgaste do disco).

Todos os Macs que vêm com SSDs têm o TRIM ativado.

O outro problema é o sistema de arquivos, especificamente os sistemas de arquivos registrados em diário, que podem manter uma cópia dos dados em outro lugar antes de serem gravados.

Mesmo em mídia magnética, isso pode causar problemas para ambos srm:

Todos os usuários [...] devem estar cientes de que o srm funcionará apenas em sistemas de arquivos que sobrescrevem blocos no local. Em particular, NÃO funcionará na [...] grande maioria dos sistemas de arquivos registrados no diário.

E shred:

[..] shred depende de uma suposição muito importante: que o sistema de arquivos substitua os dados no local. [..] muitos projetos modernos de sistemas de arquivos não atendem a essa suposição. As exceções incluem: Sistemas de arquivos estruturados em log ou registrados em diário [..]

Os volumes HFS Plus são registrados no diário por padrão desde o Mac OS X v10.3.

Hoje em dia, a melhor maneira de "excluir" arquivos com segurança é habilitar o FileVault (para que eles nunca gravem discos não criptografados em primeiro lugar) e depois excluí-los e deixar o TRIM resolver o problema.

Se, por golpe de infelicidade, você estiver em um suporte magnético, o diário estiver desativado e, por algum motivo, não puder criptografar o disco, as opções são:

  • Use o rm -Pque substitui os arquivos com 0xff, então 0x00e depois 0xffnovamente
  • Instalar coreutilspara gshred(ie. brew install coreutils && gshred secrets.txt)
  • srmfoi removido homebrew-dupese, homebrew-coremas alguém publicou uma torneira aqui que funciona (por exemplo, brew install khell/homebrew-srm/srm && srm secrets.txt)
  • Destruição física do meio :)
Molomby
fonte
Mas acho que o shred ainda está bom se você destruir a partição inteira ou o disco inteiro.
Konstantin
Você quer dizer como shred /dev/hda? Sim, eu acho que sim. Os blocos sendo endereçados pelo sistema operacional ainda são abstraídos da memória física e, potencialmente, estão sendo remapeados durante o fragmento. Pergunto-me se qualquer espaço nivelamento de desgaste e reserva é implementações podem causar isso nem sempre funciona ..
Molomby
+1 para a explicação sobre por que a destruição é inútil nos SSDs e a sugestão para usar o FileVault. O APFS é registrado no diário ou sabemos como ele lida com a exclusão de arquivos? (Provavelmente deve ser um tópico separado!)
Stuart H
1
Parece haver a suposição aqui de que a exclusão segura é necessária apenas para unidades 'internas'. As unidades conectadas são fornecidas de todas as formas e o srm seria apropriado para algumas delas.
Rondo