如何在 Debian 11 中使用 Shred 命令安全刪除文件

如果您有一個包含敏感信息的文件,僅使用 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 命令如何覆蓋和刪除文件,使它們難以使用任何恢復工具進行恢復。