一周前我忘记了会话密码。在假期前一周更改密码不是一个好主意……我使用 Ubuntu 的恢复模式更改了密码,但连接会话不起作用。使用其他帐户,我了解到我的家被加密了。我恢复数据的唯一解决方案是记住我的密码。
使用 Python 脚本,我编写了 50,000 个可能密码的列表。我运行该代码:
#!/bin/sh
while IFS='' read -r line || [[ -n "$line" ]]; do;
./ecryptfs_pass.sh $line 2>&1 | tee -a results.txt
done < "$1"
其中 ecryptfs_pass.sh 是一个以以下内容开头的预期脚本:
spawn ecryptfs-unwrap-passphrase /home/username/.ecryptfs/wrapped-passphrase
expect "*assphrase*"
send -- "$argv\r"
如果出现错误则进行缓存。
你可以想象,我很高兴能找到匹配项。于是我得到了我的 old_password。于是我把登录会话的密码改为 old_password,并尝试打开它。然而,响应仍然相同。而且,我编写的程序不再能捕获 old_password。
我很高兴找到了我的密码,并且接近了结局,但我发现自己实际上更加困惑。有人能解释一下发生了什么吗?我该怎么做才能解决这种情况并恢复我的数据?
PS:完整地说,我认为我使用错误的路径运行了该程序:/home/test_user/.ecryptfs/wrapped-密码其中 test_user 是我创建的,用来使用我知道的密码重现这种情况,但我确信我得到的是 old_password,而不是我最近几天为 test_user 使用的虚拟密码。