Linux 中如何安全地抹去磁碟資料?

離過職的小夥伴都知道,離職的時候需要上交公司電腦,但是電腦裡面有許多我們的個人資訊(聊天記錄、瀏覽記錄等等)

所以我們就需要先把這些資訊都刪除,確保無法恢復之後才上交

即有些情況下我們不得不以一種確保無法恢復的方式從磁碟上擦除所有資訊

許多小夥伴可能認為使用檔案管理器或者rm命令刪除資料可以保證安全性,但其實不然

因為rm命令或者檔案管理器刪除檔案只是刪除指向檔案系統的指針(inode),所以原始資料仍可以使用

在 Linux 中,檔案由指針部分(inode)和資料部分(data)組成

檔案被刪除的時候,檔案對應的 inode 就被刪除掉了,而檔案的資料部分在 inode 被清除掉之後,就會被覆蓋並寫入新的內容

下面我們來看一下在 Linux 中如何安全地抹去磁碟資料吧!

PS:文章中提到的命令請謹慎使用!

shred

我們先來看看shred命令,它是 Linux 中保護私人資料的最佳方式之一

shred功能是重複覆蓋檔案,只能使用專門的硬體並且極其困難地恢復資料,所以它經常被用來安全地擦除資料

shred是 Linux 軟體包coreutils的一部分,所以一般情況下是默認安裝的

默認情況下,

默認情況下,shred會執行三次,在執行的時候,它會將偽隨機資料寫入設備。

例如我們要擦除dev/sdb設備

前面我們說到,

前面我們說到,shred會執行三次。但是執行三次所需的時間太長了,我們可以通過-n來設置執行次數

來設置執行次數
來設置執行次數

我們還可以添加更多選項來提高從磁碟刪除資料的可靠性

  • --random-source=/dev/urandom:表示指定使用隨機生成的資料覆蓋磁碟。Linux 的特殊檔案/dev/urandom為核心的隨機數生成器提供了一個接口

  • -z /dev/sdb:用 0 覆蓋到目前為止的所有內容

wipe

wipe

看這個命令的名字就可以知道,這個命令用於擦除(wipe)磁碟中的資料

wipe命令會重寫磁碟扇區並刷新快取,這使得想要恢復資料是一件極其困難或者說不可能的事

Linux 默認沒有這個工具,我們需要先安裝

這個命令很簡單,後面只需加上磁碟路徑即可

ps:現在 wipe 這個工具好像安裝不了了(不知道是不是棄用了),試了多個映象源 yum 安裝的時候都說沒有該軟體包(安裝了拓展源也不行),有知道原因的小夥伴歡迎給我留言

dd

dd可從標準輸入或檔案中讀取資料,根據指定的格式來轉換資料,再輸出到檔案、設備或標準輸出

dd

dd命令是 Linux 中另一種常用的擦除磁碟的方法,儘管該命令並不像shredwipe那樣明確地用於從磁碟中擦除資料,但它是 Linux 使用者廣泛使用的方法

例如下面的命令可以安全可靠地擦除/dev/sdb設備中的資料

設備中的資料
  • if=/dev/urandom:輸入檔案,我們用/dev/urandom生成隨機資料

  • of=/dev/sdb:輸出檔案,表示要擦除的磁碟

  • bs:塊大小(以位元組為單位)

當顯示 「No space left on device」時,表示擦除成功完成

或者我們用 zero 字串對磁碟進行覆蓋,而不是生成隨機資料

參考文章

參考文章:https://linuxiac.com/best-ways-to-securely-erase-disk-in-linux/

相關文章

吳峰光殺進 Linux 核心

吳峰光殺進 Linux 核心

【編者按】吳峰光,Linux 核心守護者,學生時代被同學戲稱為「老神仙」,兩耳不聞窗外事,一心只搞 Linux。吳峰光的 Linux 核心之...

宮敏把自由軟體和 Linux 帶回中國

宮敏把自由軟體和 Linux 帶回中國

對於宮敏,在中國的開源界以及技術圈內,大家所熟知的是「中國 Linux 第一人」的稱呼,因為他用手提肩背的方式將 Linux 帶回了中國,組...