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