如何使用Linux shred命令?


Linux中的shred命令是一個強大的工具,允許使用者永久刪除檔案並使其無法恢復。當您想要確保敏感資料完全從系統中刪除時,此命令特別有用。在本文中,我們將探討如何使用shred命令,包括示例和輸出。

理解shred命令

在深入研究示例之前,瞭解shred命令的作用非常重要。當您使用rm命令在Linux中刪除檔案時,檔案實際上並沒有從磁碟中刪除。相反,檔案佔據的空間被標記為可重用,但資料仍然保留,直到被新資料覆蓋。這意味著使用合適的工具可以恢復已刪除的檔案。

另一方面,shred命令在刪除檔案之前會覆蓋檔案資料,使其難以(如果不是不可能)恢復。預設情況下,shred會覆蓋檔案三次,但這可以使用-n選項進行調整。

shred的基本用法

shred命令的基本語法如下:

shred [options] file_name

這是一個簡單的例子:

shred document.txt

在這個例子中,shred命令將覆蓋document.txt三次。命令執行後,document.txt中的資料將被隨機資料位替換。

shred命令選項

shred命令附帶幾個選項,允許您自定義其行為:

  • -n - 此選項允許您指定應覆蓋資料的次數。例如,shred -n 5 document.txt將覆蓋document.txt五次。

  • -u - 此選項告訴shred在覆蓋檔案後將其刪除。預設情況下,shred不會刪除檔案,它只會覆蓋資料。要覆蓋然後刪除檔案,可以使用shred -u document.txt。

  • -z - 此選項新增最後一次用零覆蓋來隱藏粉碎過程。如果您不想讓別人知道檔案已被粉碎,這將非常有用。例如,shred -z document.txt將覆蓋document.txt三次,然後用零進行最後一次覆蓋。

  • -v - 此選項啟用詳細模式,顯示操作進度。例如,shred -v document.txt將顯示粉碎過程的進度。

這是一個使用所有這些選項的示例:

shred −n 5 −u −z −v document.txt

此命令將覆蓋document.txt五次,刪除檔案,最後一次用零覆蓋,並顯示操作進度。

讓我們深入研究一些包含各自輸出的更多示例

示例1:基本的shred命令

命令 -

shred file1.txt

此命令將用隨機資料三次覆蓋file1.txt。除非發生錯誤,否則終端不會有任何輸出。

示例2:指定覆蓋次數

命令 -

shred −n 10 file2.txt

此命令將用隨機資料十次覆蓋file2.txt。同樣,除非發生錯誤,否則不會有任何輸出。

示例3:覆蓋並刪除檔案

命令 -

shred −u file3.txt

此命令將三次覆蓋file3.txt,然後將其刪除。除非發生錯誤,否則不會有任何輸出。

示例4:用零覆蓋

命令 -

shred −z file4.txt

此命令將用隨機資料三次覆蓋file4.txt,然後用零進行最後一次覆蓋。除非發生錯誤,否則不會有任何輸出。

示例5:詳細模式

命令 -

shred −v file5.txt

輸出 -

shred: file5.txt: pass 1/3 (random)...
shred: file5.txt: pass 2/3 (random)...
shred: file5.txt: pass 3/3 (random)...

此命令將用隨機資料三次覆蓋file5.txt,並顯示操作進度。

示例6:使用所有選項

命令 -

shred −n 5 −u −z −v file6.txt

輸出 -

shred: file6.txt: pass 1/6 (random)...
shred: file6.txt: pass 2/6 (random)...
shred: file6.txt: pass 3/6 (random)...
shred: file6.txt: pass 4/6 (random)...
shred: file6.txt: pass 5/6 (random)...
shred: file6.txt: pass 6/6 (000000)...
shred: file6.txt: removing
shred: file6.txt: renamed to 00000000000000
shred: 00000000000000: removed

此命令將用隨機資料五次覆蓋file6.txt,刪除檔案,最後一次用零覆蓋,並顯示操作進度。

示例7:粉碎多個檔案

命令 -

shred −v file1.txt file2.txt file3.txt

輸出 -

shred: file1.txt: pass 1/3 (random)...
shred: file1.txt: pass 2/3 (random)...
shred: file1.txt: pass 3/3 (random)...
shred: file2.txt: pass 1/3 (random)...
shred: file2.txt: pass 2/3 (random)...
shred: file2.txt: pass 3/3 (random)...
shred: file3.txt: pass 1/3 (random)...
shred: file3.txt: pass 2/3 (random)...
shred: file3.txt: pass 3/3 (random)...

此命令將分別用隨機資料三次覆蓋file1.txt、file2.txt和file3.txt,並顯示操作進度。

示例8:粉碎目錄(不推薦)

命令 -

shred −v −u directory_name/*

輸出 -

shred: directory_name/file1.txt: pass 1/3 (random)...
shred: directory_name/file1.txt: pass 2/3 (random)...
shred: directory_name/file1.txt: pass 3/3 (random)...
shred: directory_name/file1.txt: removing
shred: directory_name/file1.txt: renamed to 00000000000000
shred: 00000000000000: removed
...

此命令將用隨機資料三次覆蓋directory_name中的所有檔案,刪除檔案,並顯示操作進度。請注意,shred不能用於安全地刪除目錄本身,因為它設計用於普通檔案。

示例9:用更多覆蓋和零覆蓋檔案

命令 -

shred −n 10 −z −v file4.txt

輸出 -

shred: file4.txt: pass 1/11 (random)...
shred: file4.txt: pass 2/11 (random)...
...
shred: file4.txt: pass 10/11 (random)...
shred: file4.txt: pass 11/11 (000000)...

此命令將用隨機資料十次覆蓋file4.txt,最後一次用零覆蓋,並顯示操作進度。

示例10:僅用隨機資料覆蓋檔案

命令 -

shred −n 5 −v file5.txt

輸出 -

shred: file5.txt: pass 1/5 (random)...
shred: file5.txt: pass 2/5 (random)...
shred: file5.txt: pass 3/5 (random)...
shred: file5.txt: pass 4/5 (random)...
shred: file5.txt: pass 5/5 (random)...

此命令將用隨機資料五次覆蓋file5.txt,並顯示操作進度。

請注意,實際輸出可能因shred命令的版本和您使用的檔案系統而異。

結論

shred命令是確保永久刪除敏感資料的強大工具。但是,請注意,shred可能在某些檔案系統上無效,包括某些型別的日誌檔案系統、基於RAID的檔案系統以及在臨時位置快取的檔案系統。始終確保您瞭解所用工具的侷限性,並考慮多層安全性以保護敏感資料。

更新於:2023年7月13日

458 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告