tcplay
tcplay 是一个自由、功能齐全且稳定的 TrueCrypt 实现,包括多重密钥文件和密码链。
来源:github 项目主页
安装
将文件加密为虚拟卷
调用
$ losetup -f
以查找第一个未使用的回环设备;在本例中,/dev/loop0
。
注意: 从 udev 181-5 开始,
loop
设备模块不再自动加载。在工作目录中创建一个新的容器 foo.tc
,例如大小为 20M
# fallocate -l 20M foo.tc # losetup /dev/loop0 foo.tc # tcplay -c -d /dev/loop0 -a whirlpool -b AES-256-XTS
输入卷的安全密码,并确认查询以使用新卷覆盖 foo.tc
。然后 tcplay 会将随机数据写入卷中。映射卷并在其上创建文件系统以便挂载
# tcplay -m foo.tc -d /dev/loop0 # mkfs.ext4 /dev/mapper/foo.tc # mount /dev/mapper/foo.tc /mnt/truecrypt/
要取消设置容器,
# umount /mnt/truecrypt # dmsetup remove foo.tc # losetup -d /dev/loop0
为用户挂载现有容器
考虑 /dev/loop0
为第一个未使用的环回设备,foo.tc
为 TrueCrypt 容器,/home/you/truecrypt/
为所需的挂载点。在本例中,用户 you
的 uid=1000
和 gid=100
。将容器挂载为虚拟卷的步骤是
- 将环回设备与容器关联
- 将容器映射到环回设备
- 在文件系统中挂载容器
以下命令执行上述操作。
# losetup /dev/loop0 foo.tc # tcplay -m foo.tc -d /dev/loop0 # mount -o nodev,nosuid,uid=1000,gid=100 /dev/mapper/foo.tc /home/you/truecrypt/
注意,如果容器使用 ext4 或另一个支持文件所有权的文件系统,则不需要 uid
和 gid
参数,并且它们将不起作用。因此,第三个命令将只是
# mount -o nodev,nosuid /dev/mapper/foo.tc /home/you/truecrypt/
要反转它们
# umount /home/you/truecrypt/ # dmsetup remove foo.tc # losetup -d /dev/loop0
使用 tcplay-helper
tcplay-helper 脚本简化了创建、挂载和卸载 tc-play 容器的过程。该脚本很简单,但对于大多数希望使用简单安全 tc-play 容器的用户来说应该可以正常工作。
以下命令创建一个名为 foo.tc 的 3Mb 容器。
# tcplay-helper create foo.tc 3M
要挂载容器文件,我们可以使用以下命令以 root 身份挂载它。容器将挂载在 /mnt/truecrypt/ 下
# tcplay-helper open foo.tc
或者,我们可以提供用户名以将容器作为该用户挂载。
# tcplay-helper open foo.tc archie
最后,要关闭容器,此命令可以解决问题。
# tcplay-helper close foo.tc