firejail 如何建立其默认黑名单?

firejail 如何建立其默认黑名单?

当我启动时firejail,我可以看到完整的主目录。当我启动时firejail --whitelist=~/something,我只能看到something我的主目录。现在我想限制对系统的更多访问。例如,我可以添加--blacklist=/media,它按预期工作。

但是默认行为如何确定/home/OTHERUSER/home/*白名单文件外的文件是否被隐藏?我没有看到匹配的规则/etc/firejail/*

是否允许子目录?例如,--blacklist=/media --whitelist=/media/data即使手册页告诉我们,白名单会覆盖其他选项(如),也无法按预期工作--read-only

这些规则是否硬编码在二进制文件中?如果不是,哪条规则负责这些事情?

我想要的一个例子。基本规则:

  1. 家里空无一人,除了个人资料中列出的东西
  2. 黑名单/media/data
  3. 允许符号链接~/apps ->/media/data/apps只读。
  4. 允许/media/data/apps(如有必要)只读。

1、2 可以工作,3 只与 4 一起工作(可能还可以),但是覆盖禁止目录的子目录的读访问权限不起作用。

它应该可以工作,这似乎有点违反直觉,但是在文件系统层mkdir -p foo/bar;chmod 111 foo;ls foo/bar/(这111意味着,foo 没有读取(目录列表)权限,但只有可执行位(进入子目录)有效,即使ls foo/失败也是如此。

扩展方案将禁止除白名单之外的所有操作(配置文件 + /usr、/bin、/lib 等)。另一件似乎没有 root 就不可能的事情(然后应用程序本身以 root 身份运行)是将 /etc/passwd 替换为不包含用户的文件,这在监狱中不应该被知道。/etc包含大量可读数据,应该对不受信任的应用程序隐藏。

但可能扩展的场景确实会证明完整的 chroot + userspace-lxc 容器是合理的。

相关内容