mount:沒有加密恢復的文件或目錄
我已經破壞了我的 Mint Linux 安裝。我只是想訪問我的遠端店面。所以發生的事情是我在我的主目錄中遇到了 ICEauthority 文件的問題。因此,按照網際網路上的不同方向,我得出結論,我可以將主目錄遞歸設置為 chmod 755 以允許該文件工作……最終我遇到了系統載入問題。最終,通過將主目錄設置為 root 的可執行權限,我能夠獲得讀/寫訪問權限……但後來我重置了我的機器,哦,為什麼哦,為什麼我要重置我的機器!!!- 現在系統向我拋出了與 ICEauthority 相同的錯誤,但它永遠不會讓我進入作業系統,因為磁碟已加密。我嘗試過的任何方法似乎都不起作用,而且我沒有原始的安裝種子。
frankenmint@honeybadger /home $ sudo ecryptfs-recover-private INFO: Searching for encrypted private directories (this might take a while)... INFO: Found [/home/.ecryptfs/frankenmint/.Private]. Try to recover this directory? [Y/n]: y INFO: Found your wrapped-passphrase Do you know your LOGIN passphrase? [Y/n] y INFO: Enter your LOGIN passphrase... Passphrase: Inserted auth tok with sig [979c6cdf80d2e44d] into the user session keyring mount: No such file or directory ERROR: Failed to mount private data at [/tmp/ecryptfs.Hy3BV96c].
我真的很擔心,因為我在那裡有儲存在虛擬機上的重要文件……如果我可以訪問這些文件,那麼我將毫不猶豫地進行設置並重新開始
我發現以 root 身份執行
sudo bash
然後執行ecryptfs-recover-private
(而不是通過 sudo)是有效的。不知道為什麼它應該有所不同。編輯:
TL; 博士:
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase - | ecryptfs-add-passphrase --fnek - < Type your login password here > Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
您將不會看到提示,必須在上述命令中輸入您的登錄密碼,blind。
用上面輸出中括號之間的十六進制簽名替換
aaaaaaaaaaaaaaaa
和bbbbbbbbbbbbbbbb
下面,按順序:# mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
預賽
事實證明,僅以 root 身份執行對我來說並不可靠。有時會,有時不會。基本上,ecryptfs 似乎有問題並且對使用者非常不友好,經常混淆登錄密碼和掛載密碼。在進入一個又深又黑的兔子洞之後,我有一些技巧應該會有所幫助。這些說明適用於 Ubuntu 17.10,ecryptfs-utils 111-0,您應該在開始之前成為 root。我假設您想將主目錄從
/mnt/crypt
(應該已經安裝)安裝到/mnt/plain
,並且您應該替換user
為使用者名。輕鬆開始
首先要嘗試的是:
# ecryptfs-recover-private /mnt/crypt/.ecryptfs/user/.Private
如果這有效,那麼你很幸運。
mount
如果沒有,它可能會從about發出錯誤消息no such file or directory
。這是極具誤導性的:它的真正含義是您的掛載密碼錯誤或失去。獲取簽名
這是重要的部分:我們需要驗證 ecryptfs 是否真的在嘗試正確的掛載密碼。在 ecryptfs 可以掛載您的文件系統之前,必須將密碼片語載入到 Linux 核心中。ecryptfs 通過簽名向核心詢問它們。簽名是一個 16 字節的十六進制值(並且對密碼不敏感)。您可以找到 ecryptfs 期望的密碼簽名:
# cat /mnt/crypt/.ecryptfs/user/.ecryptfs/Private.sig aaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbb
**記住這些。**目標是將帶有這些簽名的密碼片語載入到核心中,然後告訴 ecryptfs 使用它們。第一個簽名 (
aaaaaaaaaaaaaaaa
) 用於數據,第二個 (bbbbbbbbbbbbbbbb
) 是文件名加密密鑰 (FNEK)。獲取掛載密碼
此命令將詢問您的登錄密碼(帶有誤導性提示),並輸出您的掛載密碼:
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase
複製這個,但要小心!!,因為這對密碼非常敏感,所以是王國的鑰匙。
嘗試互動式安裝
接下來要嘗試的是:
# mount -t ecryptfs /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
這裡的關鍵是
mount
需要我們剛剛複制的(超級敏感的)掛載密碼(不是您的登錄密碼)。這會問你一些問題,你可以接受預設值,除了對 .yes說是
Enable filename encryption
。它可能會給您一個警告並要求記憶體簽名;您可以對兩者都說“是”,但請仔細檢查您是否擁有正確的安裝密碼。您將看到
mount
已決定為您嘗試的選項:Attempting to mount with the following options: ecryptfs_unlink_sigs ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb ecryptfs_key_bytes=16 ecryptfs_cipher=aes ecryptfs_sig=aaaaaaaaaaaaaaaa Mounted eCryptfs
如果簽名錯誤(與您從 得到的不匹配
Private.sig
),則安裝將無法工作。…但它會非常無益地報告它確實如此。你將不得不做一個
ls /mnt/plain
和 cat 一個文件來確保。此時,您還可以查看/var/log/syslog
並驗證 ecryptfs 是否正在尋找與我們相同的簽名。顯然,這裡的 ecryptfs 存在兩個嚴重的問題,我們必須解決它們。
將密鑰載入到核心中
如果互動式掛載沒有幫助,我們必須自己將密鑰載入到核心中,並在掛載選項中手動指定它們。
# ecryptfs-add-passphrase --fnek
並粘貼從上面複製的(超敏感)**安裝密碼。**這應該輸出:
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
手動掛載
現在密碼已載入到核心中,我們只需要告訴 mount 使用它們:
# umount /mnt/plain # mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
您會注意到選項類似於互動式掛載列印出來的選項,除了我們手動告訴 ecryptfs 發生了什麼。
希望這有效。如果沒有,您可以使用 來檢查密鑰是否以正確的簽名載入到核心中
keyctl list @u
,這應該至少列印出您期望的兩個簽名。