6.10. 允许 MLS 用户在较低级别上编辑文件
默认情况下,MLS 用户无法写入在明确范围内低值下具有敏感等级的文件。如果您的场景需要允许用户在较低级别上编辑文件,可以通过创建本地 SELinux 模块来实现。但是,写入文件会使用户当前范围内的低值提高其敏感度级别。
前提条件
-
SELinux 策略被设置为
mls
。 -
SELinux 模式设置为
enforcing
。 -
已安装
policycoreutils-python-utils
软件包。 -
setools-console
和audit
软件包进行验证。
流程
可选:切换到 permissive 模式以方便故障排除。
# setenforce 0
使用文本编辑器打开新的
.cil
文件,如~/local_mlsfilewrite.cil
,并插入以下自定义规则:(typeattributeset mlsfilewrite (_staff_t_))
您可以将
staff_t
替换为不同的 SELinux 类型。通过在此处指定 SELinux 类型,您可以控制哪些 SELinux 角色可以编辑低级别文件。要让您的本地模块更好地组织,请在本地 SELinux 策略模块的名称中使用
local_
前缀。安装策略模块:
# semodule -i ~/local_mlsfilewrite.cil
注意要删除本地策略模块,请使用
semodule -r ~/local_mlsfilewrite
。请注意,您必须引用不带.cil
后缀的模块名称。可选:如果您之前切换到 permissive 模式,返回到 enforcing 模式:
# setenforce 1
验证
在安装的 SELinux 模块列表中找到本地模块:
# semodule -lfull | grep "local_mls" 400 local_mlsfilewrite cil
由于本地模块具有优先级
400
,所以您也可以使用semodule -lfull | grep -v ^100
命令列出它们。-
以分配给自定义规则中定义的类型的用户身份登录,例如
staff_t
。 尝试写入到具有较低敏感度级别的文件。这会将文件的分类级别增加到用户的安全许可级别。
重要如果配置不正确,您用于验证的文件不应包含任何敏感信息,并且用户实际上可以访问未经授权的文件。