天天看點

shred 指令詳解

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接口的第一個磁盤裝置的第三分區