Linux 中如何安全地抹去磁盤數據?
哈嘍大家好,我是咸魚
離過職的小伙伴都知道,離職的時候需要上交公司電腦,但是電腦里面有許多我們的個人信息(聊天記錄、瀏覽記錄等等)
所以我們就需要先把這些信息都刪除,確保無法恢復之后才上交
即有些情況下我們不得不以一種確保無法恢復的方式從磁盤上擦除所有信息
許多小伙伴可能認為使用文件管理器或者 rm 命令刪除數據可以保證安全性,但其實不然
因為 rm 命令或者文件管理器刪除文件只是刪除指向文件系統的指針(inode),所以原始數據仍可以使用
在 Linux 中,文件由指針部分(inode)和數據部分(data)組成
文件被刪除的時候,文件對應的 inode 就被刪除掉了,而文件的數據部分在 inode 被清除掉之后,就會被覆蓋并寫入新的內容
下面我們來看一下在 Linux 中如何安全地抹去磁盤數據吧!
PS:文章中提到的命令請謹慎使用!
shred
我們先來看看 shred 命令,它是 Linux 中保護私人數據的最佳方式之一
shred 功能是重復覆蓋文件,只能使用專門的硬件并且極其困難地恢復數據,所以它經常被用來安全地擦除數據
shred 是 Linux 軟件包 coreutils 的一部分,所以一般情況下是默認安裝的
圖片
默認情況下,shered 會執行三次,在執行的時候,它會將偽隨機數據寫入設備。
例如我們要擦除 dev/sdb 設備
圖片
圖片
前面我們說到,shered 會執行三次。但是執行三次所需的時間太長了,我們可以通過 -n 來設置執行次數
圖片
圖片
我們還可以添加更多選項來提高從磁盤刪除數據的可靠性
圖片
- --random-source=/dev/urandom :表示指定使用隨機生成的數據覆蓋磁盤。Linux 的特殊文件 /dev/urandom 為內核的隨機數生成器提供了一個接口
- -z /dev/sdb:用 0 覆蓋到目前為止的所有內容
圖片
wipe
看這個命令的名字就可以知道,這個命令用于擦除(wipe)磁盤中的數據
wipe 命令會重寫磁盤扇區并刷新緩存,這使得想要恢復數據是一件極其困難或者說不可能的事
Linux 默認沒有這個工具,我們需要先安裝
圖片
這個命令很簡單,后面只需加上磁盤路徑即可
圖片
ps:現在 wipe 這個工具好像安裝不了了(不知道是不是棄用了),試了多個鏡像源 yum 安裝的時候都說沒有該軟件包(安裝了拓展源也不行),有知道原因的小伙伴歡迎給我留言
dd
dd 可從標準輸入或文件中讀取數據,根據指定的格式來轉換數據,再輸出到文件、設備或標準輸出
圖片
dd 命令是 Linux 中另一種常用的擦除磁盤的方法,盡管該命令并不像 shred和 wipe 那樣明確地用于從磁盤中擦除數據,但它是 Linux 用戶廣泛使用的方法
例如下面的命令可以安全可靠地擦除 /dev/sdb 設備中的數據
圖片
- if=/dev/urandom:輸入文件,我們用 /dev/urandom 生成隨機數據
- of=/dev/sdb:輸出文件,表示要擦除的磁盤
- bs:塊大?。ㄒ宰止潪閱挝唬?/li>
圖片
當顯示 “No space left on device”時,表示擦除成功完成
或者我們用 zero 字符串對磁盤進行覆蓋,而不是生成隨機數據
圖片
參考文章:https://linuxiac.com/best-ways-to-securely-erase-disk-in-linux/