我们遇到这样一种情况:我们有一张 SD 卡,需要特定文件夹密码保护。
该文件夹包含视频文件,必须能够通过应用程序(Kodi)访问。
必须满足以下条件:
- SD卡必须被许多不同的机器使用
- 任何有密码的人都必须能够添加/编辑/删除文件夹中的文件
- Kodi 应该能够访问该文件夹,因为它会自动从那里播放视频(目前它已经这样做了)
有没有办法使用终端为文件添加密码?最好不要安装任何外部应用程序来实现这一点,但我觉得这可能是不可避免的。
我已经研究过诸如 cryptkeeper 和 GnuGP 之类的加密选项,但我并不确信它们能够满足上述三个条件。
答案1
听起来您需要即时加密,因此您可以立即“解锁”并读取文件,而无需将它们解密到第二个位置(就像 gpg 需要的那样)。
Cryptkeeper 使用 EncFS,两者通常不会在一般发行版中默认安装。
cryptsetup
通常默认安装,因此您可以在整个 SD 卡、仅一个分区或仅一个文件上使用 LUKS。
要在整个卡上使用 LUKS:
- 创建容器:
cryptsetup luksFormat <device>
- 打开容器:
cryptsetup luksOpen <device> mapname
- 格式化容器:(
mkfs.ext4 /dev/mapper/mapname
如果需要,可以使用其他文件系统,而不是 ext4) - 挂载容器:
mount /dev/mapper/mapname /mountpoint
- 将 (
cp
) 文件复制到容器中/mountpoint
要读取文件/播放视频,请按照步骤 2-4 操作,然后告诉 Kodi(或任何程序)读取文件/mountpoint
要仅使用 SD 卡上的文件,请将其替换
<device>
为文件。可以使用以下命令在 SD 卡上创建文件:fallocate -l <length> file
或者
head -c <length> /dev/zero > file
如果您仅在文件上使用 LUKS,那么您还可以添加一个包含步骤 2-4 的小型安装脚本,除非您的系统或文件管理器(或gnome-disk-utility
)只需单击一两次即可解锁并安装 LUKS 容器。
eCryptfs 是另一个选择,尽管在我看来它不像 LUKS 那样容易设置和使用,尽管它通常也已经安装好了。请参阅askubuntu 上的这个答案有关带有随机目录的 eCryptfs 的一些信息。