SE Linux中映射到标签的目录路径在哪里



我看到文件系统类型和文件类型是在AOSP中的/external/sepolicy/file.te中声明的。但每种类型都表示或映射到注释中提到的特定目录。

链接:https://android.googlesource.com/platform/external/sepolicy/+/参考文献/标题/棒棒糖发布/文件.te

示例1:

#Default type for anything under /system.
type system_file, file_type;

示例2:

#/data/data subdirectories - app sandboxes
type app_data_file, file_type, data_file_type;

这意味着我们正在声明一个类型app_data_file,并将该类型与属性file_typedata_file_type相关联

注意:所有属性都在属性文件中声明。

链接:https://android.googlesource.com/platform/external/sepolicy/+/参考文献/标题/棒棒糖发布/属性

  1. 提到类型system_file用于路径/systemapp_data_file用于/data/data子目录。但是,这些类型和路径在哪里被明确映射或关联?如果它们没有映射到任何地方,那么操作系统将如何知道system_file用于/system

  2. 如果我必须创建一个新类型my_app_type并将其映射到目录/data/com.my_app/photos/,我该如何实现?

这些文件被标记,例如device/manufacturer/device-name/sepolicy/file_contexts和其他file_contexts文件(在构建AOSP时可以看到(。有关更详细的解释,请参阅标记新服务和地址拒绝。

另请参阅RHEL文档(它来自哪里(,因为问题的第二部分很难回答;我想知道这是否是必要的,为什么?如果我正确理解该目录的用途,在Android上,这可能是FileProvider的工作,将这些文件公开给其他应用程序。降低安全标准通常不是一个好主意,但还有另一种方法,即从已经允许的安全上下文进行访问。我的意思是,即使可以用ls -laZ列出标签(类似于文件系统列表(,安全上下文始终是进行访问的角度。AndroidX Camera2Basic示例将演示我的意思(它是应用程序内部存储的FileProvider(。