shred コマンドは、ファイルを安全に削除するためのコマンドです。単に rm で削除するだけでは、ディスク上にデータが残っていて復元可能な場合がありますが、shred を使用すると、ファイルの内容を上書きして復元を困難にできます。

注意
  • shredHDD(磁気ディスク)向け のツールであり、SSDやフラッシュメモリ(例: USBメモリ, NVMe)には効果が限定的です。SSDではウェアレベリング機能のため、データが完全に上書きされない可能性があります。
  • 一部のファイルシステム(例: ext3 のジャーナリングモード、btrfsZFS)では shred の効果が制限される場合があります。

基本的な使い方

編集
shred [オプション] ファイル名

主なオプション

編集
主なオプション
オプション 説明
-n, --iterations=N 上書き回数を指定(デフォルトは3回)
-z, --zero 最後にゼロで上書き(隠蔽)
-u, --remove 上書き後にファイルを削除
-f, --force 書き込み保護を解除して削除を試行
-v, --verbose 進行状況を表示
-x, --exact ファイルサイズを変えずに上書き
--random-source=FILE 乱数のソースを指定

ファイルを3回上書きして削除

編集
shred -u confidential.txt

confidential.txt を3回上書きし、削除。

ファイルを1回上書きして削除(処理を高速化)

編集
shred -u -n 1 confidential.txt

1回の上書きのみ行い、その後削除。

ファイルを3回上書きし、最後にゼロで隠蔽

編集
shred -u -z confidential.txt

最後の上書きをゼロで行い、削除したことを隠す。

ファイルを7回上書き

編集
shred -n 7 confidential.txt

7回上書きするが、削除はしない。

上書き処理の進捗を表示しながら実行

編集
shred -v -u confidential.txt

削除状況を確認しながら安全に削除。

SSD や特定のファイルシステムでの注意点

編集

shredHDD に適したツール であり、以下の状況では完全なデータ削除が保証されません。

  1. SSD・NVMe の場合
    • SSD ではデータの書き込みが均等に分散(ウェアレベリング)されるため、shred で上書きしても別の領域に元データが残る可能性がある。
    • 対策: shred ではなく、blkdiscard(Linux)や ATA Secure Erase(BIOS/UEFI)を使用する。
  2. ジャーナリングファイルシステム(ext3, ext4, XFS, btrfs, ZFS)
    • shred が意図した場所にデータを書き込めないことがある。
    • 対策: srm(secure rm)や wipefs を使用する。

FreeBSD での代替手段

編集

FreeBSD には shred が含まれていません。代わりに以下のコマンドを使用します。

  1. rm -P(3回上書きして削除)
    rm -P confidential.txt
    
    shred の基本的な機能に相当。
  2. dd を使用した上書き
    dd if=/dev/urandom of=confidential.txt bs=1M count=10
    rm confidential.txt
    
    /dev/urandom から乱数データを confidential.txt に書き込み、その後削除。
  3. srm(secure rm)をインストール
    pkg install secure-delete
    srm confidential.txt
    
    srmshred よりも強力な削除を行うツール。

まとめ

編集
HDD の場合: shred は有効。shred -u -z で安全に削除可能。
SSD の場合: shred は不完全。blkdiscardATA Secure Erase を使用するべき。:
FreeBSD では shred がないため、rm -Psrm を使用。

安全にデータを削除する場合は、ストレージの特性を理解した上で適切なツールを選択しましょう。

最も確実にデータを削除したい場合には、ストレージデバイスの物理的破壊も検討に値します。