如何在 Linux 中使用终端密码保护 SD 卡文件夹

如何在 Linux 中使用终端密码保护 SD 卡文件夹

我们遇到这样一种情况:我们有一张 SD 卡,需要特定文件夹密码保护。

该文件夹包含视频文件,必须能够通过应用程序(Kodi)访问。

必须满足以下条件:

  1. SD卡必须被许多不同的机器使用
  2. 任何有密码的人都必须能够添加/编辑/删除文件夹中的文件
  3. Kodi 应该能够访问该文件夹,因为它会自动从那里播放视频(目前它已经这样做了)

有没有办法使用终端为文件添加密码?最好不要安装任何外部应用程序来实现这一点,但我觉得这可能是不可避免的。

我已经研究过诸如 cryptkeeper 和 GnuGP 之类的加密选项,但我并不确信它们能够满足上述三个条件。

答案1

听起来您需要即时加密,因此您可以立即“解锁”并读取文件,而无需将它们解密到第二个位置(就像 gpg 需要的那样)。

Cryptkeeper 使用 EncFS,两者通常不会在一般发行版中默认安装。

cryptsetup通常默认安装,因此您可以在整个 SD 卡、仅一个分区或仅一个文件上使用 LUKS。

要在整个卡上使用 LUKS:

  1. 创建容器:cryptsetup luksFormat <device>
  2. 打开容器:cryptsetup luksOpen <device> mapname
  3. 格式化容器:(mkfs.ext4 /dev/mapper/mapname如果需要,可以使用其他文件系统,而不是 ext4)
  4. 挂载容器: mount /dev/mapper/mapname /mountpoint
  5. 将 ( 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 的一些信息。

相关内容