情况如下:我想为我的学生提供一种简单的方法来安全地保护他们的数据,并在外部 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] userluks
和luksClose
& 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 包装器进行更多自定义设备访问,这里简单提到。