unconfined_t 与 SELinux 中的 unlabeled_t

unconfined_t vs unlabeled_t in SELinux

我遇到了两种不同的 SELinux 类型,它们是 unconfined_tunlabeled_t

Can anyone tell me what is difference between them?

因为你的selinux是开启的。你可以检查它getenforce。 我认为最好将 selinux 切换为 Permissive。 您需要使用 setenforce 0 或 disable

unlabeled_t是一种特殊类型(isid类型)。初始安全标识符 (isid) 是标记实体的一种特殊方式。它用于在无法以其他方式解决的场景中标记实体。例如故障转移、初始化和固定对象的场景。

unlabeled_t 类型与 "unlabeled" 和 "file" isid 相关联。未标记的 isid 用于自动将类型(在本例中 unlabeled_t)与具有无效上下文的实体相关联,文件 isid 用于自动关联与其关联的类型(在本例中 unlabeled_t) 与根本没有标签的实体。

这两种常见(故障转移)情况的发生可能有多种原因:

  1. SELinux 在 GNU/Linux 中在运行时是可变的,这意味着可以在运行时添加和删除上下文,从而验证和使上下文无效。因此,如果您的系统中有一个具有给定上下文的实体,并且您决定在运行时删除该上下文,那么它就会失效并且未标记的 isid 将自动将 unlabeled_t 与其相关联。

  2. 当您格式化一个新分区,或者当您与一个不使用 SELinux 的系统共享一个分区时,默认情况下该文件系统没有标签。文件初始 sid 启动并将 unlabeled_t 与没有标签的对象相关联。

isid 上下文在内存中关联。 SELinux 默认强制完整性。所以一切都需要一个有效的标签。 初始安全标识符用于解决无法通过其他方式解决的标签挑战。

如果您看到 unlabeled_t,则该实体的标签无效或根本没有标签。您可能希望通过将有效标签与实体相关联来解决该问题。

unconfined_t 是一种 "normal" 类型,它具有一组非常广泛的关联权限。与 unconfined_t 类型关联的实体实际上不受 SELinux 限制。