如何在Linux上移除文件內的隱私數據
對那些想要從共享數據中擦除一切個人元數據的用戶來說,有一些方法從數據文件中移除元數據。你可以使用已有的文檔或圖片編輯軟體,通常有自帶的元數據編輯功能。在這個教程里,我會介紹一種不錯的、單獨的元數據清理工具,其目標只有一個:匿名一切私有元數據。
MAT(元數據匿名工具箱)是一款專業的元數據清理器,使用Python編寫。它屬於Tor旗下的項目,而且是Live 版的隱私增強操作系統 Trails 的標配應用。
與諸如exiftool等只能對有限種類的文件類型進行寫入的工具相比,MAT支持從各種各樣的文件中消除元數據:圖片(png、jpg)、文檔(odt、docx、pptx、xlsx和pdf)、歸檔文件(tar、tar.bz2)和音頻(mp3、ogg、flac)等。
在Linux上安裝MAT
在基於Debian的系統(Ubuntu或Linux Mint)上,已經打包好MAT,所以安裝很直接:
$ sudo apt-get install mat
在Fedora上,並沒有預先生成的MAT軟體包,所以你需要從源碼生成。這是我在Fedora上生成MAT的步驟(不成功的話,請查看教程底部):
$ sudo yum install python-devel intltool python-pdfrw perl-Image-ExifTool python-mutagen
$ sudo pip install hachoir-core hachoir-parser
$ wget https://mat.boum.org/files/mat-0.5.tar.xz
$ tar xf mat-0.5.tar.xz
$ cd mat-0.5
$ python setup.py install
使用MAT-GUI匿名元數據
一旦安裝好,通過GUI和命令行都可以使用MAT。輸入這個命令啟動MAT的GUI:
$ mat-gui
嘗試清理一個包含如下內置元數據的實例文檔文件(如private.odt)。
點擊「添加」按鈕來添加需要清理的文件到MAT中。一旦載入文件,點擊「確認」按鈕對所有隱藏的元數據信息進行掃描。
只要元數據被MAT檢測到,「State」狀態就會被標記成「Dirty」。雙擊文件可以查看檢測到的元數據。
點擊「清理」按鈕來清除文件中的元數據。MAT會自動清空文件中的所有私有元數據欄位。
清除後的狀態中不包含任何私有可辨識的痕迹:
從命令行匿名元數據
$ mat -c .
正如前面提到的,另一種調用MAT的方式是從命令行,使用mat命令可達到。
為了檢查任何敏感的元數據,先前往文件所在的目錄,然後運行:
$ mat -c .
這樣會掃描當前目錄和其子目錄下的所有文件,並報告它們的狀態(已清理或未清理)。
你可以使用「-d」選項來查看檢測到的真實元數據:
$ mat -d <input_file>
如果不為mat命令提供任何選項,默認操作會移除文件的元數據。如果要在清理的過程中保留原始文件的備份,使用「-b」選項。下面命令會清除所有文件的元數據,並將原始文件存儲為「*.bak」文件。
$ mat -b .
查看所支持的文件類型,請運行:
$ mat -l
故障排除
當前我在Fedora上使用編譯版本的MAT遇到了下列問題。當我嘗試在Fedora清除歸檔/文檔文件的元數據時(如.gz、.odt、*.docx),MAT因為下列錯誤失敗。如果你知道如何解決這個問題,請在評論里回復我。
File "/usr/lib64/python2.7/zipfile.py", line 305, in __init__
raise ValueError('ZIP does not support timestamps before 1980')
ValueError: ZIP does not support timestamps before 1980
總結
MAT是一款簡單但非常好用的工具,用來預防從元數據中無意泄露私人數據。請注意如果有必要,文件內容也需要保護。MAT能做的是消除與文件相關的元數據,但並不會對文件本身進行任何操作。簡而言之,MAT是一名救生員,因為它可以處理大多數常見的元數據移除,但不應該只指望它來保證你的隱私。[譯者註:養成良好的隱私保護意識和習慣才是最好的方法]
via: http://xmodulo.com/2014/08/remove-file-metadata-linux.html
作者:Dan Nanni 譯者:KayGuoWhu 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive