如果您有一個包含敏感信息的文件,僅使用 rm 命令或按 Delete 鍵可能還不夠。 使用 rm 命令刪除文件通常只會將其從我們的目錄中刪除。 刪除的文件保留在磁盤上,並且可以被具有必要技能的攻擊者恢復和濫用。
在 Linux 中,您可以使用 shred 命令通過用亂碼數據反复覆蓋文件來安全地刪除文件。 這使得恢復原始數據變得非常困難或幾乎不可能,即使已恢復刪除的文件也是如此。 Shred 命令不僅會覆蓋文件,還會在指定時將其刪除。 您還可以使用它來覆蓋分區或整個磁盤。
在本文中,我們將解釋如何在 Debian 11 中使用 shred 命令安全地刪除文件。 相同的過程可用於其他 Debian 和 Ubuntu 版本。 我們還討論了一些命令行選項。
使用 Shred 命令
Shred 命令是 GNU 核心實用程序之一,幾乎可以在包括 Debian 在內的任何 Linux 系統上使用。 讓我們看看如何使用 shred 命令:
粉碎命令語法
以下是 shred 命令語法:
$ 粉碎選項 <文件>
其中“FILE”可以是文件或任何硬盤分區。
當您使用不帶任何選項的 shred 命令時,它會多次用亂碼數據覆蓋文件。 為了理解 shred 命令的作用,讓我們創建一個名為“testfile.txt”的測試文件,其中包含一些文本。
$ echo “this file contains some sample text” > testfile.txt
這就是我們的 example 文件看起來像:
創建文件後,還要檢查文件的大小。 稍後我們將使用它來將其與碎文件的大小進行比較。
$ ls -l testfile.txt
現在運行 shred 命令(不帶任何命令行選項),後跟要粉碎的文件名。
$ shred testfile.txt
上面的命令會覆蓋 測試文件.txt 三次(默認)。 要查看測試文件發生了什麼,請調用 cat 命令:
$ cat testfile.txt
從 cat 命令輸出中,您只會看到文件中的亂碼。
此外,如果您查看文件大小,您會發現它有所增加。
粉碎命令行選項
shred 命令具有一些命令行選項,可讓您擴展其功能。 讓我們看一下這些選項如何工作的一些示例。
詳細輸出
使用 -v 或 –verbose 選項,您可以查看後台發生的情況。
$ shred -v testfile.txt
以下輸出顯示了用隨機數覆蓋文件的三遍。
注意:接下來對於以下所有示例,我們將使用 -v 選項來顯示輸出。
覆蓋多個文件
如果您有多個文件,則可以使用單個命令將它們粉碎,而不是使用單獨的命令逐個粉碎它們。 要粉碎多個文件,請將它們全部鍵入作為參數(以空格分隔)或使用通配符指定具有相同擴展名的所有文件。
$ shred -v testfile1.txt testfile2.txt testfile3.txt
如以下屏幕截圖所示,所有三個文件都將在一個進程中被粉碎。
覆蓋驅動器
您還可以使用 shred 命令覆蓋驅動器和分區。 為了 example覆蓋所有數據 /dev/sda2 分區,命令將是:
$ sudo shred -v /dev/sda2
用零覆蓋
通常, shred 命令會用隨機數據覆蓋文件。 但是,在您的系統上,在此設備上執行粉碎操作會很明顯。 您可以使用 shred 命令的 -z 或 –zero 選項隱藏粉碎過程。
使用帶有 -z 或 –zero 選項的 shred 命令首先用隨機數覆蓋文件,然後添加最後一個用零覆蓋的文件。
$ shred -vz testfile.txt
在上面的輸出中,你可以看到在用隨機數覆蓋文件 3 次後,shred 最終用零覆蓋了文件。
選擇性覆蓋
shred 命令用隨機垃圾覆蓋文件 3 次。 要增加覆蓋次數,請使用 -n 或 –iterations 選項。
為了 example切碎 測試文件.txt 使用 5 次覆蓋通道,命令將是:
$ shred -vn5 testfile.txt
僅覆蓋前 x 個字節
shred 命令的默認行為是覆蓋整個文件。 將 -s 或 –size 選項與 shred 命令一起使用允許您僅覆蓋前 x 個字節。 例如,僅覆蓋前 6 個字節 測試文件.txt,命令將是:
$ shred -vs6 testfile.txt
上述命令只會覆蓋指定文件的前 6 個字節。 您可以通過調用 cat 命令來驗證它。
覆蓋後刪除文件
如前所述,如果我們在沒有任何命令行選項的情況下使用 shred 命令,它只會覆蓋文件。 但是,覆蓋後,您也可以使用 shred 命令的 -u 或 –remove 選項刪除文件。 請注意,它還會在刪除之前重命名文件。
$ shred -vu testfile.txt
從上面的輸出可以看出,文件在被覆蓋和重命名後最終被刪除了。
查看幫助
要查找有關 shred 命令的更多詳細信息,請使用 –help 選項或訪問手冊頁:
$ shred --help
或者
$ man shred
在本文中,您學習瞭如何在 Debian 中使用 shred 命令以及各種命令行選項。 您已經看到了 shred 命令如何覆蓋和刪除文件,使它們難以使用任何恢復工具進行恢復。