SELinux中MLS约束机制的深入解析
1. MLS约束概述
SELinux支持两种MLS约束语句,分别是mlsconstrain和mlsvalidatetrans,借助它们我们能够指定可选的MLS访问强制规则。这两个语句与非MLS的对应语句基本相同,不过它们还允许基于安全上下文的安全级别来表达约束条件。需要注意的是,只有启用了可选MLS特性的策略才能使用MLS约束,而非MLS约束语句则可在任何类型的策略中使用。
2. mlsconstrain语句
2.1 语句基础
mlsconstrain语句是基于constrain语句构建的,它可以使用之前讨论过的constrain语句的任何语法。同时,mlsconstrain语句新增了一些关键字,用于基于源(l1和h1)和目标(l2和H2)的低和高安全级别来声明约束条件。其完整语法如下:
mlsconstrain class_set perm_set expression ;各部分的含义如下:
-class_set:一个或多个对象类。多个对象类必须用空格分隔,并包含在花括号{}中,例如{file lnk_file}。此语句的类集中不允许使用特殊运算符*