shred是一條終端指令,功能是重複覆寫檔案,使得即使是昂貴的硬體探測儀器也難以将資料複原,(參見”shred –help”)。這條指令的功能足夠适合實作檔案粉碎的功效。
shred --help
用法:shred [選項]... 檔案...
多次覆寫檔案,使得即使是昂貴的硬體探測儀器也難以将資料複原。
-f, --force 必要時修改權限以使目标可寫
-n, --iterations=N 覆寫N 次,而非使用預設的3 次
--random-source=檔案 從指定檔案中取出随機位元組
-s, --size=N 粉碎資料為指定位元組的碎片(可使用K、M 和G 作為機關)
-u, --remove 覆寫後截斷并删除檔案
-v, --verbose 顯示詳細資訊
-x, --exact 不将檔案大小增加至最接近的塊大小
-z, --zero 最後一次使用0 進行覆寫以隐藏覆寫動作
--help 顯示此幫助資訊并退出
--version 顯示版本資訊并退出
如果指定檔案為"-",粉碎标準輸出的資料。
如果加上--remove (-u)選項表示删除檔案。預設的方式是不删除檔案,因為覆寫像/dev/hda 等的裝置檔案是很普遍的,而這些檔案通常不應删除。當覆寫一般檔案時,絕大多數人都會使用--remove 選項。
警告:請注意使用shred 時有一個很重要的條件:
檔案系統會在原來的位置覆寫指定的資料。傳統的檔案系統符合此條件,但許多現代的檔案系統都不符合條件。以下是會令shred 無效或不擔保一定有效的檔案系統的
例子:
* 有紀錄結構或是日志式檔案系統,如AIX 及Solaris 使用的檔案系統 (以及JFS、ReiserFS、XFS、Ext3 等)
* 會重複寫入資料,及即使一部份寫入動作失敗後仍可繼續的檔案系統,如使用RAID 的檔案系統
* 會不時進行快照記錄的檔案系統,像Network Applicance 的NFS 伺服器
* 檔案系統是存放于緩存位置,比如NFS 第三版使用者端
* 壓縮檔案系統
在Ext3 檔案系統中,以上免責聲明僅适用于啟用了data=journal 模式的情況,此時檔案日志記錄了附加的中繼資料 shred 的作用将受到影響。在data=ordered(預設)或data=writeback 模式下shred 仍然有效。
Ext3 日志模式可通過向/etc/fstab 的挂載選項中添加data=something 進行設定,您可以檢視mount 的man 頁面以獲得詳細資訊。
另外,檔案系統備份和遠端鏡像可能會包含不能被删除的檔案副本,這将會允許碎片檔案被恢複。
使用方法舉例如下:
粉碎一個名為test.txt的檔案指令是:
$shred test.txt
粉碎多個檔案的指令是:
$shred test1.txt test2.txt
這兩條指令的效果是檔案依舊存在,但不再是原來的檔案了,對比測試可以通過先編輯一個文本檔案後儲存,然後使用shred指令覆寫此檔案,再打開該文本檔案即可看出内容不再是原有内容了。如果想要覆寫的同時删除檔案(這才是粉碎的表現麼),加上參數 -u,指令變為:
$shred –u test.txt
覆寫一個挂載分區的檔案指令是:
$shred /dev/hda0 //覆寫IDE接口的第一個磁盤裝置的第一分區
$shred /dev/sda2 //覆寫SCSI或SATA接口的第一個磁盤裝置的第三分區