是否可以以最小的权限加密/解密外部 USB 驱动器?

是否可以以最小的权限加密/解密外部 USB 驱动器?

情况如下:我想为我的学生提供一种简单的方法来安全地保护他们的数据,并在外部 USB 驱动器上加密,并牢记零知识原则,以便他们可以放心,他们是唯一的人ram 在任何时间点都可以访问他们的秘密密钥。

这是否可能在不授予他们太多权利(无根)的情况下实现?如果可以,人们将如何以最简单的方式进行这一努力?

默认情况下不需要与其他操作系统兼容,因为我们鼓励每个学生使用 Linux 作为辅助操作系统,并为他们提供外部 USB3.0 固态硬盘(如果他们没有资源/金钱在自己的计算机上执行此操作)。

因此,这些限制仅限于课堂上的计算机,他们可以在自己的私人计算机上做任何他们喜欢做的事情。

简而言之,要求:在没有 root 访问权限的情况下在教室计算机上创建、加密、解密和安装卷

非常欢迎解决此问题的替代方法!

答案1

使用环境文件系统作为

   create the filesystem:

       % encfs ~/.crypt ~/crypt
       Directory "/home/me/.crypt" does not exist, create (y,n)?y
       Directory "/home/me/crypt" does not exist, create (y,n)?y
       Creating new encrypted volume.
       Please choose from one of the following options:
        enter "x" for expert configuration mode,
        enter "p" for pre-configured paranoia mode,
        anything else, or an empty line will select standard mode.
       ?>

       Standard configuration selected.
       Using cipher Blowfish, key size 160, block size 512
       New Password: <password entered here>
       Verify: <password entered here>

   The filesystem is now mounted and visible in ~/crypt.  If files are
   created there, they can be seen in encrypted form in ~/.crypt.  To
   unmount the filesystem, use fusermount with the -u (unmount) option:

       % fusermount -u ~/crypt

——摘自其手册。

保险丝是必须的。

答案2

可以使用 LUKS 并且只允许访问sudo cryptsetup luksOpen [USB] userluksluksClose& luksFormat

如果 USB 始终是同一设备(或多个设备之一),您可以将它们全部指定,例如:

用户 ALL= EXEC: PASSWD: /sbin/cryptsetup -v luksFormat /dev/sdc1,/sbin/cryptsetup -v luksOpen /dev/sdc1 userluks,/sbin/cryptsetup -v luksOpen /dev/sdd1 userluks,/sbin/cryptsetup -v luksOpen /dev/sde1 userluks,sbin/cryptsetup -v luksClose userluks

如果设备已在其他地方格式化,并且您知道特定用户的设备 UUID,则可以指定它而不是设备,如下所示/etc/sudoers

用户 ALL= EXEC: PASSWD: /sbin/cryptsetup -v luksOpen UUID=xyz userluks

较短的别名命令可能更容易输入而不会出错,并且根据您的安装权限,可能需要关联的安装命令。

还可以使用自定义 sudo 包装器进行更多自定义设备访问,这里简单提到

相关内容