我遇到过两种不同的 SELinux 类型,它们是 unconfined_t
和 unlabeled_t
Can anyone tell me what is difference between them?
最佳答案
unlabeled_t
是一种特殊类型(isid 类型)。初始安全标识符 (isid) 是标记实体的一种特殊方式。它用于在无法以其他方式解决的场景中标记实体。例如故障转移、初始化和固定对象的场景。
unlabeled_t
类型与“未标记”和"file"isid 相关联。未标记的 isid 用于自动将类型(在本例中为 unlabeled_t
)与具有无效上下文的实体相关联,文件 isid 用于自动关联与其关联的类型(在本例中为 unlabeled_t
) 与根本没有标签的实体。
这两种常见(故障转移)情况的发生可能有多种原因:
SELinux 在 GNU/Linux 中的运行时是可变的,这意味着可以在运行时添加和删除上下文,从而验证和使上下文无效。因此,如果您的系统中有一个具有给定上下文的实体,并且您决定在运行时删除该上下文,那么它就会失效,并且未标记的 isid 将自动将
unlabeled_t
与其相关联。当您格式化一个新分区,或者当您与一个不使用 SELinux 的系统共享一个分区时,该文件系统默认没有标签。文件初始 sid 启动并将
unlabeled_t
与没有标签的对象相关联。
isid 上下文在内存中关联。 SELinux 默认强制完整性。所以一切都需要一个有效的标签。 初始安全标识符用于解决无法通过其他方式解决的标签挑战。
如果您看到 unlabeled_t
,则该实体要么具有无效标签,要么根本没有标签。您可能希望通过将有效标签与实体相关联来解决这个问题。
unconfined_t
是一种“普通”类型,只有一组与之关联的权限非常广泛。与 unconfined_t
类型关联的实体实际上不受 SELinux 限制。
关于linux - SELinux 中的 unconfined_t 与 unlabeled_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58444157/