shred:上書きで安全消去、復元を許さない

shred

shredコマンドについての概要と詳細

shredとは

shredは、LinuxやUNIX環境でファイルを安全かつ復元困難に削除するためのコマンドです。
通常のrmunlinkはファイルのエントリを削除するだけで、内容自体はディスク上に残る可能性があります。一方、shredファイルの内容を複数回ランダムなデータで上書きしてから削除するため、データ復旧ツールでも復元が困難です。

主な用途

  • 機密ファイルや個人情報の安全な削除
  • ログやパスワードファイルの抹消
  • 中古PCのディスククリーニング処理

インストール方法

shredはGNU coreutilsに含まれており、ほとんどのLinuxディストリビューションでデフォルトインストールされています。もし未導入の場合は以下でインストールできます。

Debian/Ubuntu系
$ sudo apt install coreutils

Fedora系
$ sudo dnf install coreutils

基本的な使い方

ファイルを安全に削除する

$ shred -u secret.txt

ファイル secret.txt を上書きしてから削除します。-u は削除オプション(unlink)です。

上書き回数を指定する

$ shred -n 5 -u secret.txt

-n 5 で5回のランダム上書きを指定(デフォルトは3回)します。

ファイル名を上書き(混乱させる)

$ shred -u -z -f secret.txt
  • -z:最後にゼロで上書き(見た目をごまかす)
  • -f:書き込み権限がないファイルも強制

ディスクデバイスの抹消(注意)

$ shred -v /dev/sdX

※使用前に要注意です。これはディスク全体を破壊的に上書きします。

オプション一覧(代表的なもの)

オプション意味
-n Nランダム上書きの回数(デフォルト3)
-z最後にゼロで上書きする
-u上書き後にファイルを削除(unlink)
-f書き込み不可のファイルにも強制実行
-v詳細出力を表示

shredの制限事項

  • ジャーナリングファイルシステム(ext4など)では効果が限定的な場合あり
  • SSDやNANDフラッシュではガベージコレクションにより完全抹消できない可能性
  • ログやキャッシュなどに複製が残る場合は別途対応が必要

安全にデータを消すための補完手段

  • 物理ディスクを初期化したい場合:wipeddnvme format
  • SSDではセキュアErase(ATA/NVMeコマンド)も検討

まとめ

shredは、機密性の高いファイルを安全に抹消するための強力なツールです。単純な削除では不十分な場面や、復元ツールを用いた情報漏洩リスクを軽減したいときに非常に有用です。ただし、ファイルシステムの仕様や記録メディアの特性によっては完全には消去できないこともあるため、用途に応じた適切な使い方が重要です。