安装 Ubuntu 22.04 后解密用户主页

安装 Ubuntu 22.04 后解密用户主页

我有一台带有两个挂载点的笔记本电脑,一个是系统(/),另一个是/home文件夹。我的用户文件夹/home使用 Ubuntu 20.04 加密。

今天早上,我用新的 Ubuntu 22.04 ISO 重新安装了系统。我格式化了系统分区,让/home分区保持原样。我提供了与说明相同的用户名和密码在这个先前的回答中

登录 Ubuntu 22.04 时不会解密用户主文件夹。大多数应用程序无法启动,因为它们无法在用户主文件夹中写入内容。

我拥有登录密码和解密主文件夹所需的密码。因此,我尝试手动解密文件夹,但 ecryptfs-recover-private返回错误(见下文)。

如何挂载 Ubuntu 20.04 加密的用户主文件夹?

$ sudo ecryptfs-recover-private /home/lads/.Private
INFO: Found [/home/duque004/.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 [3c9323dd0ed2026f] into the user session keyring
mount: /tmp/ecryptfs.6IGtBsCb: mount(2) system call failed: No such file or directory.
ERROR: Failed to mount private data at [/tmp/ecryptfs.6IGtBsCb].

更新: 我发现一个老话题在 Arch Linux 论坛上报告了类似的问题并提供了一种解决方法,即手动安装加密卷。此方法成功安装了卷并显示文件夹树根的内容,但不提供对任何文件或文件夹的访问权限。下面的日志,更改目录、列出或复制任何内容均mnt/bck失败。

# cd /home/.ecryptfs/lads/.ecryptfs

# ecryptfs-unwrap-passphrase ./wrapped-passphrase
Passphrase:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# ecryptfs-add-passphrase --fnek
Passphrase:
Inserted auth tok with sig [aaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbb] into the user session keyring

# mount -t ecryptfs /home/.ecryptfs/lads/.Private /mnt/bck
Select key type to use for newly created files:
 1) tspi
 2) passphrase
Selection: 2
Passphrase:
Select cipher:
 1) aes: blocksize = 16; min keysize = 16; max keysize = 32
 2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
 4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
 5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
 6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]:
Select key bytes:
 1) 16
 2) 32
 3) 24
Selection [16]:
Enable plaintext passthrough (y/n) [n]: n
Enable filename encryption (y/n) [n]: y
Filename Encryption Key (FNEK) Signature [aaaaaaaaaaaa]: bbbbbbbbbbbb
Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_fnek_sig=bbbbbbbbbbbb
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=aaaaaaaaaaaa
Mounted eCryptfs

# ls /mnt/bck | grep git
git

# ls -la /mnt/bck/git
ls: cannot access '/mnt/bck/git': No such file or directory

# cp /mnt/bck/.bash*
ls: cannot access '/mnt/bck/.bash_aliases': No such file or directory
ls: cannot access '/mnt/bck/.bash_history': No such file or directory
ls: cannot access '/mnt/bck/.bash_logout': No such file or directory
ls: cannot access '/mnt/bck/.bashrc': No such file or directory

答案1

在我运行这个食谱的第二天发布在 ArchLinux 论坛上我再次使用原始 Ubuntu 20.04 用户帐户登录,发现文件夹已被解密。手动解开密码短语可能是导致此问题的原因。由于很难重复该过程以了解主文件夹在哪个阶段变得可访问,因此我在下面发布了完整的过程。它需要 20.04 系统的原始用户登录密码。

  1. 创建新用户由于 Ubuntu 22.04 不会自动解密用户主文件夹,大多数应用程序将运行不佳或根本无法运行,因此我创建了一个新的系统用户来执行救援。

  2. 解开密码并挂载。以救援用户身份登录后,执行以下命令。替换user为 20.04 系统上的用户名。对 提出的所有问题都使用默认答案mount,但“启用文件名加密?”除外。对该问题回答“是”,然后输入命令提供的对应内容ecryptfs-add-passphrasebbbbbbbbbbbb在示例中)。

$ sudo apt install ecryptfs-recover-private ecryptfs-utils

$ sudo mkdir /mnt/bck

$ sudo su

# cd /home/.ecryptfs/user/.ecryptfs

# ecryptfs-unwrap-passphrase ./wrapped-passphrase
Passphrase:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# ecryptfs-add-passphrase --fnek
Passphrase:
Inserted auth tok with sig [aaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbb] into the user session keyring

# mount -t ecryptfs /home/.ecryptfs/user/.Private /mnt/bck
Select key type to use for newly created files:
 1) tspi
 2) passphrase
Selection: 2
Passphrase:
Select cipher:
 1) aes: blocksize = 16; min keysize = 16; max keysize = 32
 2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
 4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
 5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
 6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]:
Select key bytes:
 1) 16
 2) 32
 3) 24
Selection [16]:
Enable plaintext passthrough (y/n) [n]: n
Enable filename encryption (y/n) [n]: y
Filename Encryption Key (FNEK) Signature [aaaaaaaaaaaa]: bbbbbbbbbbbb
Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_fnek_sig=bbbbbbbbbbbb
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=aaaaaaaaaaaa
Mounted eCryptfs

  1. 检查安装并重新获得访问权限。安装卷后,检查您是否可以读取其内容,例如ls -la /mnt/bck。您将无法深入查看文件夹树或复制文件,但这没问题。使用救援用户注销,然后使用原始 20.04 用户重新登录,您现在应该可以完全访问您的主文件夹。

附言:创建救援用户可能没有必要,如果您设法启动根会话(例如sudo su),则可能可以从那里运行所有内容。但目前我无法再测试这一点。

相关内容