什么是 SELinux 上下文中的地图访问

Qwe*_*tie 4 fedora selinux

我遇到了 SELinux 的问题,它告诉我 SELinux is preventing sh from map access on the file /bin/busybox.

然后它告诉我

If you believe that sh should be allowed map access on the busybox file by default.
Then you should report this as a bug.
Run Code Online (Sandbox Code Playgroud)

我似乎找不到任何告诉我地图访问实际上意味着什么的地方,这让我很难知道这是否应该是默认行为。

什么是地图访问,是否有任何文档说明它的含义?

seb*_*sth 5

映射是指内存映射(使用mmap(2)的文件)。权限和对象类的SELinux wiki 页面记录了大部分 SELinux 权限,但自 2013 年以来没有更新,也不包括映射权限。

提交消息[1] [2]提供了一些进一步的细节:

当一个文件被打开,然后通过像 read(2)/write(2) 这样的系统调用读取或写入时,我们通过 selinux_file_permission() 重新验证对每个读/写操作的访问,因此如果进程上下文、文件上下文、或策略更改为不再允许访问。当打开一个文件,然后通过 mmap(2) 映射内存,然后直接在内存中读取或写入时,我们目前无法重新验证或撤销访问。对 mmap(2) 进行单独映射权限检查的目的是允许策略禁止特定文件的内存映射,我们需要确保对其每次访问都重新验证,这对于我们希望在运行时重新标记文件的场景特别有用以反映状态变化(例如跨域解决方案,无数据复制的有保证的管道)。