linux - SELinux 中的 unconfined_t 与 unlabeled_t

标签 linux selinux

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

Can anyone tell me what is difference between them?

最佳答案

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

unlabeled_t 类型与“未标记”和"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 是一种“普通”类型,只有一组与之关联的权限非常广泛。与 unconfined_t 类型关联的实体实际上不受 SELinux 限制。

关于linux - SELinux 中的 unconfined_t 与 unlabeled_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58444157/

相关文章:

php - httpd、myslqd 和 SELinux

linux - 在 (SVS-V) IPC 信号量上配置 SELinux 权限

linux - GNUjump 不在 Arch Linux 上构建

regex - 这个 sed 命令如何用逗号解析数字?

linux - 从 Jenkins 执行时,期望实用程序不起作用

android - 我的自定义 selinux 策略似乎被 android 系统忽略了

ruby - 使用 File.open 在 Ruby 中设置文件权限

linux - 使用 GIT 在本地服务器和实时服务器之间同步网站文件?

android - 如何在 init.rc 文件中完全禁用 Android L 中的 SELinux?

linux - Vagrant:设置同步文件夹的上下文以防止 SELinux 报错