在 Linux 中安全刪除文件的 8 種方法
我們已經了解瞭如何擦除硬盤的全部內容,但如果您只想永久刪除一個或兩個或十幾個文件,會發生什麼情況? 本指南將向您展示一些最常見的解決方案,以幫助您安全刪除文件 Linux.
注意:大多數 SSD (SSD) 今天市場上的是 TRIM 來管理其可用空間,這是其固件中重新分配其內容的一項功能。 與 Linux 日誌文件系統(例如 Ext3/4 和 Reiser FS)結合使用時,無法保證在恢復單個文件後刪除。 不幸的是,在這些情況下,唯一的解決方案是 SSD 磁盤所有內容的完整核武器。
1.繞過垃圾桶
當一個文件被刪除時,它會被移到廢紙簍(又名回收站)。 如果願意,您可以繞過垃圾文件夾。 這樣,您刪除的文件就不會留在垃圾桶中,並且會被標記為完全刪除。 雖然它仍然是可恢復的,但它是將它(放入垃圾箱)中的一個步驟。
要刪除文件在 Linux 發行版 就像 Kubuntu 和 KDE 一樣,運行默認的文件管理器 Dolphin。 點擊 “菜單 -> 配置 -> Dolphin 配置 -> 回收站” 訪問相關首選項。 沒有完全禁用垃圾的選項,但您可以使用涵蓋大多數基礎的巧妙技巧:啟用大小限制並將其減少到最小值。
在我們的磁盤上,這轉換為 10.97MB。 當超過此值時,Dolphin 將清除垃圾箱中的內容,對於常規桌面可能每隔一小時清除一次。 其他文件管理器(例如 Nautilus 或 Nemo)可以選擇完全繞過垃圾箱。
優點
- 容易做
- 它在文件被永久刪除之前給你一個寬限期
缺點
- 它不會刪除磁盤上任何剩餘的元數據
- 不要清除文件中的數據
2.使用切碎
如果您使用的是不同版本的 Ubuntu,shred 可能是其中的一部分。 您可以立即開始使用它來完全刪除任何您想要遺忘的敏感 Linux 文件。
如果你想刪除 “圖片.png” 最後,使用:
切碎-uvz -n 4 image.png
- u shred 告訴你在覆蓋之前刪除文件。
- v 顯示擴展信息。
- z 用零填充數據佔用的空間以減少恢復的機會。
- -n 4 轉換為五次刪除通行證:通行證 delete 默認執行一次通行證,使用“-n”您可以指定額外的通行證數,以提高安全性。 普遍的共識是,對於大多數人來說,五次滑動應該綽綽有餘。
要刪除多個文件或文件夾內容,請使用通配符,例如:
shred -uvz -n 1 Pictures/images_0?.jpg shred -uvz -n 4 Pictures/*.*
在第一種情況下, “?” 它將是一個字符的通配符,碎紙機將刪除命名文件 “圖片_01.jpg” و “圖片_02.jpg” , 例如。
在第二種情況下,粉碎過程將刪除目錄中的所有文件 “圖片” ,無論其名稱或類型如何。
優點
- 一個文件將被完全刪除
- 可以進行 glob 匹配以覆蓋多個文件
缺點
- 一些選項標籤不明確
- 需要很長時間才能完成
3.在單個文件中使用dd
數據定義 (dd) 是當今幾乎每個 Linux 發行版中都可以找到的另一個實用程序。 然而,與 shred 不同的是,dd 的最大優點之一是它允許您調整在 Linux 中刪除文件的方式。
要使用 dd,您需要知道文件的確切大小(以字節為單位):
ls -l /路徑/到/你的/文件 | awk '{print $5}'
您可以在現有文件上運行 dd。 例如,此命令將用空字符填充您的文件:
dd status=progress bs=your_file_size count=1 if=/dev/zero of=/path/to/your/file
除了用空白字符填充文件外,您還可以強制 dd 使用偽隨機數據刷新文件:
dd status=progress bs=your_file_size count=1 if=/dev/urandom of=/path/to/your/file
您現在可以使用普通的 rm 命令刪除您的文件:
rm /路徑/到/你的/文件
優點
- 多功能 - 它不僅可以刪除文件,還可以做更多的事情
- 可設置文件刪除
缺點
- 語法已經過時,即使對於命令行程序也是如此
- 它需要對塊大小有很好的理解
4.使用濕巾
擦拭是另一個很好的選擇。 在您的發行版的軟件中心找到它並從那里安裝它或使用:
sudo apt安裝擦除
使用它就像切菜一樣簡單,甚至更簡單。 要使用 Wipe 在 Linux 中刪除文件,請運行:
擦除圖片/deleteme.png
這可能會很煩人,因為默認情況下,掃描使用大量耗時的通行證來提高安全性。 此外,它會要求確認刪除。
使用 f 標誌擺脫斷言和 r 引用子目錄。 c 告訴在需要時清除 chmod(當文件或目錄沒有特定的寫權限時),而 q 允許您減少傳遞次數以更快地刪除。 使用 q 時,請注意它是小寫的。 它後面可以跟一個字母 “ Q” 大決定了您需要多少遍。 例如,應用這些修改後的先前簡單命令將更改為:
wipe -rfcq -Q 5 圖片/deleteme.png
優點
- 易於使用,即使只有很少的命令行經驗
- 合理安全的默認參數
缺點
- 對於大多數用戶來說,默認參數可能過於嚴格
- 可能不適用於活躍的雜誌
5.使用安全刪除
SRM 是 Secure Delete 套件中的工具之一,專門用於從硬盤驅動器中安全刪除數據。 許多人認為它是完成這項工作的最佳工具。
要在 Ubuntu 和兼容髮行版上安裝完整的 Secure Delete 套件,請使用:
sudo apt 安裝安全刪除
之後,您可以刪除任何文件:
srm 圖片/deleteme.png
您可能希望使用 z 標記將文件內容替換為零以提高安全性,並使用 v 替換有關該過程的詳細信息。 如果處理目錄和子目錄,還包括用於遞歸模式的 r 標誌。 如果 38 次重寫對你來說太多了,你可以減少所需的時間 - 除了安全 - 通過使用 l 標誌將傳遞次數減少到兩次 “只是”。 這會將之前的命令轉換為:
srm -rlvz 圖片/deleteme.png
優點
- 這些選項易於理解且直觀
- 刪除文件非常安全和全面
缺點
- 需要很長時間才能完成
- 它不適用於使用 RAID 的系統
6. 在 Linux 中使用 Perl 刪除文件
除了使用工具,您還可以使用簡單的編程語言,如 Perl,在 Linux 中刪除文件。 例如,以下代碼行將用字符“0”替換文件的內容:
perl -i -pe 's/[^*]/0/g' /path/to/your/file
- -i 標誌告訴 Perl 處理您在命令中提供的文件。
- -pe 標誌告訴程序循環遍歷文件的內容。
- 's /[^*]/0/g' 是替換命令。 運算符 [^*] 匹配文件中的每個字節,0 將替換每個字節。
完成後,您可以使用 rm 刪除修改後的文件:
rm /路徑/到/你的/文件
優點
- 如果您了解 Perl,則無需學習新語法
- 使用熟悉的抽象,例如 sed 替換
缺點
- 該命令只會對文件進行一次傳遞
- 用任意數據替換內容可能不安全
7. GUI方法:使用Bleachbit
如果您厭惡命令行,Bleachbit 是安全擦除數據的最佳解決方案之一。 (Bleachbit 以其清理 Linux 系統的能力而聞名。)默認情況下,該工具專門檢測 “冗余文件” 並擺脫那些在你需要它們之後很長一段時間內仍然佔用空間的東西。 但它也包括通常被遺忘的能力 “拆毀” 恢復後手動刪除任何文件。
通過其軟件中心或通過以下方式將其安裝在與 Ubuntu 兼容的發行版上:
sudo apt 安裝 bleachbit
點擊 “菜單 -> 首選項” 並啟用該選項 覆蓋文件內容以防止恢復 以提高安全性。
回到主界面,點擊 “菜單 -> 粉碎文件” ,然後從彈出請求中選擇您希望發送到 Nowhere 的文件。 輕按 “刪除” 讓 Bleachbit 放心,您確定自己正在嘗試做什麼。
您應該始終記住,日誌文件系統的使用以及我們不知道如何使用的事實 “跑步” 固件每個硬盤驅動器的內容意味著最好的解決方案是完全擦除硬盤驅動器——或者更好的是,物理銷毀設備。
優點
- سهلالاستخدام
- 您可以將其設置為默認安全
缺點
- 無法製作光盤擦拭布
- 它不會擦除可用空間
8.通過dd擦除可用空間
雖然安全刪除會使文件更難恢復,但仍然可以使用磁盤上的元數據重建它。 通過清除設備上的所有可用空間來解決此問題。
在 Linux 中執行此操作的最簡單方法是使用 dd 創建一個填滿整個硬盤的文件:
dd status=進度 if=/dev/zero of=/home/$USER/wipefree
完成後,您必須告訴您的系統將“可用空間”文件提交到磁盤:
同步
最後,刪除文件 “可用空間” 使用 rm:
rm /home/$USER/wipefree
優點
- 簡單命令不會刪除文件
- 清除所有剩餘的元數據
缺點
- 需要很長時間才能完成
- 它不會直接刪除文件
經常問的問題
Q1:在 Linux 中是否可以安全地刪除遠程文件?
回答。 雖然可以安全地刪除遠程文件,但不能保證遠程 Linux 系統不會備份其磁盤中的文件。 最好假定並非每個系統和遠程磁盤都是安全的。
Q2:在 Linux 中安全刪除文件後,我的文件是否完全消失了?
回答。 您的系統可能仍有一些來自舊文件的元數據。 例如,交換分區可以包含有關係統安全刪除的信息。
通過重新啟動並在磁盤上創建新文件來緩解這種情況。
Q3:刪除文件時權限是不是越大越好?回答。 不必要。 在大多數情況下,五遍應該可以防止任何數據恢復工具重新創建您的文件。 恢復超過五遍的文件是可能的,但它需要高度專業化的工具和軟件才能運行。