在大多數情況下,我們習慣於使用 Delete
鍵、垃圾箱或 rm
命令從我們的計算機中刪除檔案,但這不是永久安全地從硬碟中(或任何儲存介質)刪除檔案的方法。
該檔案只是對使用者隱藏,它駐留在硬碟上的某個地方。它有可能被資料竊賊、執法取證或其它方式來恢復。
假設檔案包含密級或機密內容,例如安全系統的使用者名稱和密碼,具有必要知識和技能的攻擊者可以輕鬆地恢復刪除檔案的副本並訪問這些使用者憑證(你可以猜測到這種情況的後果)。
在本文中,我們將解釋一些命令列工具,用於永久並安全地刪除 Linux 中的檔案。
1、 shred – 覆蓋檔案來隱藏內容
shred
會覆蓋檔案來隱藏它的內容,並且也可以選擇刪除它。
1 |
$ shred -zvu -n 5 passwords.list |
在下面的命令中,選項有:
1 2 3 4 |
-z - 用零覆蓋以隱藏碎片 -v - 顯示操作進度 -u - 在覆蓋後截斷並刪除檔案 -n - 指定覆蓋檔案內容的次數(預設值為3) |
shred – 覆蓋檔案來隱藏它的內容
你可以在 shred
的幫助頁中找到更多的用法選項和資訊:
1 |
$ man shred |
2、 wipe – 在 Linux 中安全刪除檔案
wipe
命令可以安全地擦除磁碟中的檔案,從而不可能恢復刪除的檔案或目錄內容。
首先,你需要安裝 wipe
工具,執行以下適當的命令:
1 2 |
$ sudo apt-get install wipe [Debian 及其衍生版] $ sudo yum install wipe [基於 RedHat 的系統] |
下面的命令會銷燬 private 目錄下的所有檔案。
1 |
$ wipe -rfi private/* |
當使用下面的標誌時:
1 2 3 |
-r - 告訴 wipe 遞迴地擦除子目錄 -f - 啟用強制刪除並禁用確認查詢 -i - 顯示擦除進度 |
wipe – 在 Linux 中安全擦除檔案
注意:wipe
僅可以在磁性儲存上可以可靠地工作,因此對固態磁碟(記憶體)請使用其他方法。
閱讀 wipe
手冊以獲取其他使用選項和說明:
1 |
$ man wipe |
3、 Linux 中的安全刪除工具集
secure-delete 是一個安全檔案刪除工具的集合,它包含用於安全刪除檔案的 srm
(secure_deletion)工具。
首先,你需要使用以下相關命令安裝它:
1 2 |
$ sudo apt-get install secure-delete [Debian 及其衍生版] $ sudo yum install secure-delete [基於 RedHat 的系統] |
安裝完成後,你可以使用 srm
工具在 Linux 中安全地刪除檔案和目錄。
1 |
$ srm -vz private/* |
下面是使用的選項:
1 2 |
-v – 啟用 verbose 模式 -z – 用0而不是隨機資料來擦除最後的寫入 |
srm – 在 Linux 中安全刪除檔案
閱讀 srm 手冊來獲取更多的使用選項和資訊:
1 |
$ man srm |
4、 sfill -安全免費的磁碟 / inode 空間擦除器
sfill
是 secure-deletetion 工具包的一部分,是一個安全免費的磁碟和 inode 空間擦除器,它以安全的方法刪除可用磁碟空間中的檔案。 sfill
會檢查指定分割槽上的可用空間,並使用來自 /dev/urandom
的隨機資料填充它。
以下命令將在我的根分割槽上執行 sfill
,使用 `-v’ 選項啟用 verbose 模式:
1 |
$ sudo sfill -v /home/aaronkilik/tmp/ |
假設你建立了一個單獨的分割槽 /home
來儲存正常的系統使用者主目錄,你可以在該分割槽上指定一個目錄,以便在其上應用 sfill
:
1 |
$ sudo sfill -v /home/username |
你可以在 sfill 的手冊上看到一些限制,你也可以看到額外的使用標誌和命令:
1 |
$ man sfill |
注意:secure-deletetion 工具包中的另外兩個工具(sswap
和 sdmem
)與本指南的範圍不直接相關,但是,為了將來的使用和傳播知識的目的,我們會在下面介紹它們。
5、 sswap – 安全 swap 擦除器
它是一個安全的分割槽擦除器,sswap
以安全的方式刪除 swap 分割槽上存在的資料。
警告:請記住在使用 sswap
之前解除安裝 swap 分割槽! 否則你的系統可能會崩潰!
要找到交換分割槽(並檢查分頁和交換裝置/檔案是否已經使用,請使用 swapon
命令),接下來,使用swapoff
命令禁用分頁和交換裝置/檔案(使 swap 分割槽不可用)。
然後在(關閉的) swap 分割槽上執行 sswap
命令:
1 2 3 4 |
$ cat /proc/swaps $ swapon $ sudo swapoff /dev/sda6 $ sudo sswap /dev/sda6 #這個命令要花費一些時間,預設要進行 38 遍擦除 |
sswap – 安全 swap 擦除器
閱讀 sswap
的手冊來獲取更多的選項和資訊:
1 |
$ man sswap |
6、 sdmem – 安全記憶體擦除器
sdmem
是一個安全的記憶體擦除器,其設計目的是以安全的方式刪除儲存器(RAM)中的資料。
它最初命名為 smem,但是因為在 Debain 系統上存在另一個包 smem – 報告每個程式和每個使用者的記憶體消耗,開發人員決定將它重新命名為 sdmem
。
1 |
$ sudo sdmem -f -v |
關於更多的使用資訊,閱讀 sdmen
的手冊:
1 |
$ man sdmem |