我的主目录使用 Ecrypfts 加密(据我所知)。我使用在后台运行的 dropbox 服务将本地文件与云同步。从 2018 年 11 月开始,dropbox 将仅支持使用 LUKS 加密的 ext4 分区。
我想从 Ecrypfts 切换到 LUKS。这是 blkid 的输出。
/dev/nvme0n1p6: UUID="b49f5039-2524-4e7a-ba28-96f935367c7e" TYPE="ext4" PARTUUID="9124511d-c89a-4944-b346-c1f30a98801d"
/dev/nvme0n1p7: UUID="e26b7783-5a36-4855-8a30-56bb21e4d310" TYPE="swap" PARTUUID="25ab9b40-5886-4a0a-b631-fced0caa0869"
/dev/mapper/cryptswap1: UUID="f442df5d-5420-48f5-966a-d3d264ab9bfa" TYPE="swap"
我还没有找到任何关于如何做到这一点的文章。有没有一种安全的方法可以在这两种加密类型之间切换?
编辑:
在/etc/crypttab中
cryptswap1 UUID=e26b7783-5a36-4855-8a30-56bb21e4d310 /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
ls -l /dev/mapper
crw------- 1 root root 10, 236 Aug 26 11:18 control
lrwxrwxrwx 1 root root 7 Aug 26 11:18 cryptswap1 -> ../dm-0
答案1
查看您是否拥有 eCryptfs
Ctrl按+ Alt+打开终端T并输入:
df --type=ecryptfs
如果你看到如下输出:
Filesystem 1K-blocks Used Available Use% Mounted on
/home/.ecryptfs/$USER/.Private 415321024 214784192 179416628 55% /home/$USER
然后您的主文件夹就被 eCryptfs 加密了。
背景
LUKS 加密和 eCryptfs 的工作方式不同。
首先,eCryptfs 加密/home/$USER
文件夹,LUKS 在分区级别工作。
/home/$USER
其次,当 $USER 登录时,加密文件夹将被解锁。每次启动计算机时,LUKS 分区加密都会要求输入密码。一旦/home
分区解锁,您就可以像往常一样使用登录密码登录您的帐户。也就是说,您需要使用两个密码。如果您的计算机有其他用户,他们的“主”文件夹也将被加密。因此,如果计算机的所有用户需要在您不在的情况下打开计算机并使用它,他们必须知道 LUKS 密码。有一种方法可以将密码保存在文件中,让 LUKS 在启动时自动解锁分区,但这并不安全。
第三,您的计算机只有一个分区/
(加上交换分区),大多数 Ubuntu 安装都是这样。没有简单的方法可以用 LUKS 加密这个 Ubuntu 单分区安装。如果您想保留单分区设置,您可能需要备份数据并重新安装 Ubuntu。安装时,选择全盘加密选项。
最后,备份!备份!备份!下面描述的步骤非常危险。您可能会丢失所有数据,或者您的 Ubuntu 安装将无法启动。
步骤 1:创建一个新分区/home
步骤 1.1:从实时 CD/USB 启动
使用无需安装的选项尝试 Ubuntu。
步骤 1.2:识别磁盘
打开 Gparted。我更喜欢 Gparted,因为它是可视化的,让我“看到”驱动器和分区。单击右上方的下拉菜单,查看驱动器列表。浏览列表并根据大小和分区结构确定要使用的驱动器。您需要确定/
要缩小的内部硬盘驱动器中的分区。
步骤 1.3:收缩
确保您已选择内部磁盘。
选择/
要缩小的分区。
将分区的右边缘向左拖动到调整大小/移动为新/home
分区腾出空间。根据新分区的需要腾出尽可能多的空间/home
。
按下 Gparted 中的“应用”按钮并等待。
如果一切顺利,请转到下一步。如果出现错误,请停止!
步骤1.4 创建新分区
右键单击您创建的未分配空间并选择新建。您将看到“创建新分区”窗口。确保文件系统显示“ext4”,其余部分可以保持原样。
按下 Gparted 中的“应用”按钮并等待。
如果一切顺利,请转到下一步。如果出现错误,请停止!
步骤1.5 将计算机重新启动到内部硬盘
第 2 步:加密新分区
步骤2.1 查找有关新分区的识别信息
Ctrl按+ Alt+打开终端T并输入:
sudo blkid
系统将提示您输入密码。输入密码后,终端上不会显示任何内容。这是正常的。
将输出复制并粘贴到文本文件中。记下 UUID 以及分区名称,如/dev/nvme0pX
,其中 X 是新分区的编号。
步骤2.2 LUKS加密!
sudo cryptsetup -h sha256 -c aes-xts-plain64 -s 512 luksFormat /dev/nvme0pX
系统将提示您输入密码。每次启动计算机时都需要输入此密码来解锁/home
分区。请勿将其留空。
接下来的两个命令打开加密分区并对其进行格式化,以使其准备好存储数据。
sudo cryptsetup luksOpen /dev/nvme0pX home
sudo mkfs.ext4 -m 0 /dev/mapper/home
步骤 3 临时挂载并复制/home
创建新文件夹,作为加密分区的临时挂载点
sudo mkdir /newhome
将加密分区挂载到newhome
sudo mount /dev/mapper/home /newhome
确保您的“主页”文件夹可以访问。如果您有多个用户,并且每个用户的主页文件夹都已加密,请确保“主页”文件夹可以访问。
把原来的 home 复制到 newhome
sudo cp -a /home/* /newhome
确保所有文件都已复制到新主页并且您可以看到它们。
删除在新家中复制的旧加密系统的位
sudo rm -rf /newhome/username/Private /newhome/username/.ecryptfs
您的用户名在哪里username
。如果此计算机中有多个用户拥有加密的“主页”文件夹,则您必须为所有用户执行此操作。
步骤 4:将新家设置为家
编辑文件/etc/crypttab
sudo nano /etc/crypttab
添加以下行,确保 UUID 对应于 /dev/nvme0pX:
home UUID=AAA-BBB-CCC-DDDD-EEEEEEEE none luks,timeout=30
按Ctrl+ ,X然后按Y和Enter保存并退出 nano。
/etc/fstab
使用 nano编辑
sudo nano /etc/fstab
并添加以下行:
/dev/mapper/home /home ext4 nodev,nosuid,noatime 0 2
按Ctrl+ ,X然后按Y和Enter保存并退出 nano。
请不要重新启动计算机!
步骤 5:删除旧的加密主页和旧的加密程序
sudo rm -rf /home/*
sudo apt remove ecryptfs-utils libecryptfs1
请注意,旧的 /home 文件夹应该保留为空,因为这将用作加密分区的挂载点。
步骤6:重新启动
在您登录之前,系统会提示您输入主分区密码。
希望这可以帮助