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