介紹如何在 Linux 中使用 shred
徹底銷毀機密性資料,避免救援軟體回覆。
銷毀機密資料
shred
指令可以用來銷毀機密性的資料,執行時在參數中指定要進行銷毀的檔案即可:
# 銷毀 file.txt 檔案內容(以亂數資料覆蓋 3 次)
shred file.txt
在預設的情況下,shred
會以亂數資料覆蓋要進行銷毀的檔案內容,覆蓋的動作會重複 3 次,確保資料完全無法復原,若要改變重複覆蓋的次數,可以使用 -n
參數來指定:
# 以亂數資料覆蓋 5 次 shred -n 5 file.txt
銷毀機密資料並刪除檔案
shred
指令預設只會進行檔案內容的覆蓋,如果要讓它覆蓋內容之後,自動將檔案刪除,可以加上 -u
參數:
# 以亂數資料覆蓋後,刪除檔案 shred -u file.txt
覆蓋指定長度的資料
如果只要覆蓋掉檔案中指定長度的資料,可以使用 -s
參數指定覆蓋資料的長度:
# 以覆蓋 file.txt 檔案的前 128 位元組資料 shred -s 128 file.txt
強制覆蓋檔案
若要讓 shred
強制覆蓋檔案(必要時自動變更檔案權限),可以加上 -f
參數:
# 強制覆蓋檔案 shred -f file.txt
顯示詳細處理資訊
若要讓 shred
顯示詳細的資料處理資訊,可以加上 -v
參數:
# 顯示詳細處理資訊 shred -v file.txt
shred: file.txt: pass 1/3 (random)... shred: file.txt: pass 2/3 (random)... shred: file.txt: pass 3/3 (random)...
填入 0
值
在經過 shred
覆蓋處理之後,檔案內容會呈現亂數的資料,如果希望消除這些亂數資料,可以加上 -z
參數,再覆蓋完亂數之後,再填入 0
值:
# 填入 0 值 shred -v -z file.txt
shred: file.txt: pass 1/4 (random)... shred: file.txt: pass 2/4 (random)... shred: file.txt: pass 3/4 (random)... shred: file.txt: pass 4/4 (000000)...
銷毀整個磁碟資料
shred
除了銷毀指定的檔案資料之外,也可以對整顆磁碟的所有資料進行銷毀:
# 銷毀 /dev/sdc 磁碟中所有資料 shred -vzf /dev/sdc