6.7. 在 MLS 中更改文件敏感度

在 MLS SELinux 策略中,用户只能修改自己的敏感度级别的文件。这是为了防止以较低明确的级别向用户公开任何高度敏感信息,同时防止不明确的用户创建高敏感文件。不过,管理员可以手动增加文件的分类,例如要在更高级别处理该文件。

先决条件

  • SELinux 策略设置为 mls
  • SELinux 模式被设置为 enforcing。
  • 您有安全管理权限,这意味着您要分配给其中之一:

    • secadm_r 角色。
    • 如果启用了 sysadm_secadm 模块,进入 sysadm_r 角色。sysadm_secadm 模块默认启用。
  • 已安装 policycoreutils-python-utils 软件包。
  • 分配给任何安全权限级别的用户。如需更多信息,请参阅 MLS 中建立用户清除级别

    在本例中,User1 已有 s1 级别的权限。

  • 分配了安全级别的、您有全访问的文件。

    在本例中,/path/to/file 具有级别 s1 权限。

步骤

  1. 检查该文件的安全级别:

    # ls -lZ /path/to/file
    -rw-r-----. 1 User1 User1 user_u:object_r:user_home_t:s1 0 12. Feb 10:43 /path/to/file
  2. 更改文件的默认安全级别:

    # semanage fcontext -a -r s2 /path/to/file
  3. 强制重新标记文件的 SELinux 上下文:

    # restorecon -F -v /path/to/file
    Relabeled /path/to/file from user_u:object_r:user_home_t:s1 to user_u:object_r:user_home_t:s2

验证

  1. 检查该文件的安全级别:

    # ls -lZ /path/to/file
    -rw-r-----. 1 User1 User1 user_u:object_r:user_home_t:s2 0 12. Feb 10:53 /path/to/file
  2. 可选:验证具有较低级别权限的用户是否无法读取该文件:

    $ cat /path/to/file
    cat: file: Permission denied