所以,長話短說,我有一些,呃,敏感的我希望保護這些資料免遭他人窺探。假設它位於我桌面上名為 的資料夾中My Secrets
。
然而,我想保留某種方法來銷毀這些數據,使其無法恢復,以這種方式,它是不可能恢復的,並且沒有證據表明這些數據甚至一開始就存在。
我希望能夠保留我的 Ubuntu 安裝和任何/所有非敏感數據,因此完整的核武器(遺憾的是)不是一個選擇。
我怎樣才能在 Ubuntu 中實現這個目標?
理想情況下,我還希望能夠在按下大頭針時觸發此刪除,從那時起,我的資料就無法停止(至少部分)破壞。我也願意使用需要設定的解決方案(例如,任何未來需要儲存的資料)。
答案1
shred
GNUcoreutils
是專門為此目的而設計的。
從man shred
:
重複覆蓋指定的文件,以使即使非常昂貴的硬體探測也難以恢復資料。
shred
實際上讀取隨機位元組/dev/urandom
並用這些位元組覆蓋檔案內容,最後可選擇用零覆蓋內容(來自/dev/zero
)。因此,如果您想重新發明輪子,您可以手動完成此操作,但最好使用shred
已經針對該任務進行了最佳化的工具。
例如,對於任何給定的文件my_secured_file.txt
,您可以執行以下操作:
shred my_secured_file.txt
這裡:
-v
為了冗長-z
用於隨後用零覆蓋文件,以隱藏粉碎-n 5
為迭代次數,預設為3
如果您願意,您可以增加迭代次數,儘管預設值就足夠了,甚至可以刪除檔案(-u
, --remove
)。
查看man shred
。
由於shred
對檔案進行操作,用於對目錄中的所有檔案進行操作(遞歸),例如my_secret_dir
:
shopt -s globstar
for f in my_secret_dir/**/*; do shred -vzn 5 -- "$f"; done
或者find
:
find my_secret_dir -type f -exec shred -vzn 5 -- {} +
筆記:
shred
需要注意的是,它無法在日誌、快取、RAID、壓縮檔案系統上正常運作。引用man shred
:
注意:請注意,shred 依賴一個非常重要的假設:檔案系統會就地覆蓋資料。這是傳統的處理方式,但許多現代檔案系統設計並不滿足這個假設。以下是 shred 在所有檔案系統模式下無效或不保證有效的檔案系統範例:
日誌結構或日誌檔案系統,例如 AIX 和 Solaris 提供的檔案系統(以及 JFS、ReiserFS、XFS、Ext3 等)
即使某些寫入失敗也能寫入冗餘資料並繼續運行的檔案系統,例如基於 RAID 的檔案系統
製作快照的檔案系統,例如 Network Appliance 的 NFS 伺服器
在臨時位置快取的檔案系統,例如 NFS 版本 3 用戶端
壓縮檔案系統
對於 ext3 檔案系統,上述免責聲明僅適用於 data=journal 模式(因此粉碎的有效性有限),該模式除了元資料之外還記錄檔案資料。在 data=ordered(預設)和 data=writeback 模式下,shred 照常工作。可以透過將 data=something 選項新增至 /etc/fstab 檔案中特定檔案系統的掛載選項來變更 Ext3 日誌記錄模式,如掛載手冊頁 (man mount) 所述。
此外,檔案系統備份和遠端鏡像可能包含無法刪除的檔案副本,這將允許稍後恢復粉碎的檔案。
在 Ubuntu 中,如果您使用的ext4
檔案系統也是日誌檔案系統,則日誌模式是元資料的預設模式,而不是資料的預設模式(data=ordered
是預設值),因此您應該使用shred
-ing 來獲得預期結果,除非您更改預設值.
作為旁注,您可以透過以下方式找到預設檔案系統選項:
sudo dumpe2fs -h /partition |& grep 'Filesystem features'
例子:
% sudo dumpe2fs -h /dev/sda3 |& grep 'Filesystem features'
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
表示has_journal
這是一個日誌 FS,預設日誌選項為:
% sudo dumpe2fs -h /dev/sda3 |& grep 'Journal features'
Journal features: journal_incompat_revoke
同時兩者:
% sudo dumpe2fs -h /dev/sda3 |& grep 'features'
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Journal features: journal_incompat_revoke
答案2
這是一個非常規的建議:儲存敏感數據僅有的在加密的、密碼鎖定的雲端儲存中,沒有快捷方式資料夾在您的電腦中(即不要安裝 Dropbox 或類似軟體,它會建立遠端儲存的本機鏡像)—只是瀏覽器中的書籤。當您想要刪除本機系統上的敏感資料證據時,請刪除書籤並擦除瀏覽器歷史記錄(或者,理想情況下,使用高安全性瀏覽器變體或設置,在每次關閉時自動安全地擦除歷史記錄)。十秒鐘左右,如果沒有法醫級別的完整系統搜索,任何人都無法知道從哪裡開始尋找(除非您是國際間諜或兒童色情販運者,否則極不可能)。