SELinux 上下文中的映射访问是什么

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.

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

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

答案1

映射是指内存映射(一个文件使用映射(2))。 SELinux 维基页面权限和对象类记录了大部分 SELinux 权限,但自 2013 年以来就没有更新过,并且不包括地图权限。

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

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

相关内容