如何限制 ecryptfs 对一组进程的访问

如何限制 ecryptfs 对一组进程的访问

我想要一个执行以下操作的脚本:

  1. 使用 ecryptfs 挂载加密目录
  2. 设置权限,以便只有bash由它启动的 shell 以及从该 shell 继承的任何进程才能访问该目录。

如果需要,可以使用 sudo 运行该脚本,以便它具有执行安装和设置的权限。

我的想法是,我有一些受信任的程序,我想用它们来处理存储在加密目录中的数据。我希望保护数据免受系统上其他程序的影响。

但是,我希望受信任的程序能够正常访问我的主文件夹,并且它们在加密目录之外写入的文件可供任何应用程序使用。因此,以不同用户身份运行该程序似乎没有帮助。

到目前为止,我已经研究了 SELinux 和 cgroup。其中cgroups似乎更接近我想要的,因为它会自动继承权限。我想我可以设置两个 cgroup,“受信任”和“不受信任”,其中“不受信任”将是包含所有任务的默认值。但是,我发现有关如何使用 cgroup 限制文件访问的信息非常少,并且我不确定它是否真的可以按照我想要的方式进行。

所以,如何限制 ecryptfs 对一组进程的访问

答案1

相关问题,我找到了这个工具取消共享我以前不知道,但它正是我想要的。

以下脚本是我想出的:

mount_privately.sh:

#!/bin/bash
sudo unshare -m /bin/bash -c "mount -t ecryptfs $1 $2; su $USER; umount $2"

用法示例:

user@localhost:~$ ./mount_privately.sh backing_dir secure_dir
Passphrase: ...
user@localhost:~$ # secure_dir is now a

似乎不需要也可以实现这一点root,但这对我来说已经足够好了。

相关内容