ksaitoの日記

日々試したことの覚え書き

データを破棄する

shredコマンドを使ってデータを破棄することができます。
shredは、乱数データやnullデータをファイルに指定回数書き込みすることでデータを破棄します。
ハードディスクを譲渡や破棄するときに便利ですが、普段ファイルを削除するときにも便利です。

使い方

適当なテストデータを用意します。
例えば、dmesgの結果を破棄したいデータだとします。

$ dmesg > test.txt
$ head test.txt 
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 2.6.32-22-server (buildd@yellow) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #33-Ubuntu SMP Wed Apr 28 14:34:48 UTC 2010 (Ubuntu 2.6.32-22.33-server 2.6.32.11+drm33.2)
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-2.6.32-22-server root=/dev/mapper/ubuntu-root ro quiet splash
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
$ 

ファイルに乱数を3回書き込んだあとにnullデータを書き込みます。

$ shred -z -v test.txt
shred: test.txt: 経過 1/4 (random)...
shred: test.txt: 経過 2/4 (random)...
shred: test.txt: 経過 3/4 (random)...
shred: test.txt: 経過 4/4 (000000)...
$ od -cx test.txt | head
0000000  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
           0000    0000    0000    0000    0000    0000    0000    0000
*
0100000
$

無事、nullデータが書き込まれました。
--removeオプションを付けるとファイル名も含めてデータを破棄しファイルを削除してくれます。

$ shred -z -v --remove test.txt
shred: test.txt: 経過 1/4 (random)...
shred: test.txt: 経過 2/4 (random)...
shred: test.txt: 経過 3/4 (random)...
shred: test.txt: 経過 4/4 (000000)...
shred: test.txt: 削除します
shred: test.txt:  00000000に名前を変更しました
shred: 00000000:  0000000に名前を変更しました
shred: 0000000:  000000に名前を変更しました
shred: 000000:  00000に名前を変更しました
shred: 00000:  0000に名前を変更しました
shred: 0000:  000に名前を変更しました
shred: 000:  00に名前を変更しました
shred: 00:  0に名前を変更しました
shred: test.txt: 削除しました
$ ls
$