更改文件哈希值的內核級傳遞方法

更改文件哈希值的內核級傳遞方法

我正在尋找任何傳遞的內核級機制,並將透過加密檔案內容或附加資料來更改檔案雜湊值。最明顯的解決方案是加密,但我找不到任何合適的(例如完全僅內核、沒有 ecryptfs、沒有 FUSE 供電等)加密方法。

具體來說,我有大量文件,/foo我希望它們以/foobar任何混淆文件原始 MD5 的方式出現,沒有複製原始資料。我不擔心其中的文件是否/foobar因添加而變得無用——我很高興向每個文件附加一些隨機字節,並讓它破壞許多文件格式,但我不知道如何對某些文件執行此操作某種綁定安裝

答案1

如果您正在尋找自訂檔案系統覆蓋,FUSE 是正確的方向。有各種使用 FUSE 編寫的自訂檔案系統(sshfs、ntfs-3g、wikipediafs...),包括簡單的覆蓋,例如綁定檔案系統

人們可以取得bindfs原始碼並將其修改為,例如,每當處理讀取操作時,將第一個位元組與一些隨機資料進行異或。

對於純核心選項,您可以以類似的方式修改驅動程式overlayfsunionfs

另一種選擇是採用 Samba,編寫 Samba vfs 模組來損壞文件,共享來源目錄,並使用 Linuxcifs驅動程式將其安裝在同一台電腦上。 (使用9p驅動程式和u9fs守護程序,或使用nfs驅動程式和某些或其他 NFS 伺服器守護程序也可以實現相同的效果。)


如果您不關心內容,請建立具有所需大小的稀疏檔案;它們根本不佔用任何空間:

$ truncate -s 1G largefile
$ du -h --apparent largefile
1G  largefile
$ du -h largefile
0   largefile

像這樣循環一棵樹:

cd /foo
find -type d | while read -r file; do
    mkdir -p "/foobar/$file"
done
find -type f | while read -r file; do
    truncate -r "$file" "/foobar/$file"
done

相關內容