![在 Linux 下,是否可以加密文件夹/分区,使得没有密码的任何人都无法访问?](https://linux22.com/image/1486179/%E5%9C%A8%20Linux%20%E4%B8%8B%EF%BC%8C%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%8A%A0%E5%AF%86%E6%96%87%E4%BB%B6%E5%A4%B9%2F%E5%88%86%E5%8C%BA%EF%BC%8C%E4%BD%BF%E5%BE%97%E6%B2%A1%E6%9C%89%E5%AF%86%E7%A0%81%E7%9A%84%E4%BB%BB%E4%BD%95%E4%BA%BA%E9%83%BD%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%EF%BC%9F.png)
我正在研究我拥有的不同替代方案(例如 ext4 加密),但我思考所有这些都容易受到 root 攻击,只需进入我的家庭帐户并查看其中存储的内容,当有人控制了计算机时,这真的很容易做到。
我正在寻找一种方法,使我的文件无法访问,即使对于 root 用户,即使有人使用裸机也是如此。如果我忘记了密钥,我愿意冒丢失数据的风险,这不是问题,这实际上是可取的。
答案1
eCryptFS 可以加密您的主文件夹(及子文件夹),并使用您的登录密码自动解密 - root 不能直接更改您的密码,它需要您的实际登录密码。该
ecryptfs-migrate-home
脚本/工具可以加密现有主文件夹,或者许多发行版可以在创建新用户时加密主文件夹。它适用于大多数发行版、Debian、Mint 和 Ubuntu 衍生版、Arch、Gentoo 等。并且可以自由扩展其大小。或者,它也可以只使用一个加密的“私人”文件夹,
ecryptfs-setup-private
EncFS 也加密文件夹,但可能需要更多定制才能实现安全的自动解密。
LUKS 或普通的 dm-crypt 使用固定大小的容器文件或设备,不像上述基于文件的解决方案那样容易扩展,但它也不会透露太多信息(文件编号和大致大小)
TrueCrypt 及其衍生产品的工作原理与 LUKS 类似
许多发行版还可以安装“全盘加密”(通常使用 LUKS 和 LVM),这需要在启动时输入正确的密码。对于不需要自行重新启动的单用户(“个人”)计算机来说,这是一个很好的解决方案,但在多用户计算机上,它也会对其他每个用户“解密”。
答案2
您可以使用 dm-crypt 来实现这一点。您需要创建一个空文件,该文件将用作存储设备。您可以使用 dd 或 fallocate 等命令创建一个具有特定大小的文件:
fallocate -l 512M /home/user/cryptedDevice`
dd if=/dev/zero of=/home/user/cryptedDevice bs=1M count=512
这将在您的主目录中创建一个名为 cryptedDevice 的 512 MB 文件。然后您可以在该文件上设置 luks。cryptsetup -y luksFormat /home/user/cryptedDevice
使用 Luks,您可以轻松更改容器的大小等。
要打开加密文件,您可以执行以下操作:cryptsetup luksOpen /home/user/cryptedDevice someDeviceName
然后您需要用文件系统格式化该分区:mkfs.ext4 -j /dev/mapper/someDeviceName
之后您只需将该设备安装到文件夹即可:mount /dev/mapper/someDeviceName /mnt/
。
答案3
运行时请注意:
cryptsetup -y luksFormat /home/user/cryptedDevice
你收到此错误:
"Not compatible PBKDF options"
使用 --type luks1 运行
cryptsetup -y luksFormat /home/user/cryptedDevice --type luks1