我需要运行从不受信任的网络下载的脚本。
我想在 Firejail 中运行这样的脚本。
但firejail --caps.drop=all ls /home/porton/
显示它可以访问我的主目录!这不是我需要的。
如何配置Firejail(或其他安全容器)使其只能访问非秘密信息(例如操作系统安装在/usr/
,/tmp
(最好是空的),并且没有主目录)?
Debian Linux。
答案1
您的示例命令:
firejail --caps.drop=all ls /home/porton/
根据 firejail 在 /home/porton/ 目录中创建一个沙箱文档。这是如何为 Firefox 创建沙箱的示例,但是如果您查看联机帮助页,您可以看到您的脚本要么需要创建一个配置文件才能实现您所要求的行为,要么需要指定您将使用的目录。下面是一个为容器创建 chroot 的示例:
firejail --caps.drop=all --chroot=/tmp/test [Path/to/your/script/here]
Firejail 将获取系统目录和属于另一个应用程序的目录,并将它们挂载为只读,并且应用程序无法修改它们。如果您想测试这一点,请不要忘记使用 --audit 标志来测试沙箱。在您信任的 bash 脚本上测试所有这些,例如写入沙箱外部的目录并从沙箱外部的文件读取的脚本等。
另一种选择是简单地在未连接到网络的虚拟机或未连接到网络的其他电脑上运行任何不受信任的脚本。祝你好运,并记住参考您尝试运行的程序的任何文档。