16.8. MAC 框架的故障排除

本节讨论常见的配置错误以及如何解决这些错误。

  • multilabel 标志不会在根 (/) 分区上保持启用状态

    以下步骤可以解决此暂时性错误:

    • 1、编辑 /etc/fstab 并将根分区设置 ro 为只读。

    • 2、重新启动到单用户模式。

    • 3、在 / 运行 tunefs -l enable

    • 4、重新启动系统。

    • 5、运行 mount -urw/ 命令,将 /etc/fstab 中的 ro 修改为 rw ,然后重新启动系统。

    • 6、仔细检查 mount 的输出,以确保 multilabel 已在根文件系统上正确设置。

  • 使用 MAC 建立安全环境后,不能启动 Xorg

    这可能是由 MAC 策略或其中一个 MAC partition 标记策略中的错误标记引起的。要进行调试,请尝试以下操作:

    • 1、检查错误消息。如果用户在 insecure 类中,则 partition 策略可能是罪魁祸首。尝试将用户 default 类设置回该类,并使用 cap_mkdb 重建数据库。如果这不能解决问题,请转到步骤 2。
    • 2、仔细检查是否为用户、Xorg 和 /dev 条目正确设置标签策略。
    • 3、如果这些都不能解决问题,请将错误消息和环境描述发送到 FreeBSD 通用问题邮件列表
  • 出现错误 _secure_path: unable to stat .login_conf

    当用户尝试在系统中从该用户切换到 root 用户时,可能会出现此错误。当用户的标签设置高于他们尝试成为的用户的标签设置时,通常会发生此消息。例如,假如joe 的默认标签为 biba/lowroot 标签为 biba/high,则 root 无法查看 joe 的主目录。无论 roo 是否使用 su 成为 joe,这都会发生,因为 Biba 的完整性模型不允许 root 查看设置在较低完整性级别的对象。

  • 系统不识别 root

    发生这种情况时,whoami 返回 0su 返回 who are you?

    如果标签策略已被 sysctl(8) 禁用或策略模块已卸载,则可能会发生这种情况。如果禁用该策略,则需要重新配置登录功能数据库。仔细检查 /etc/login.conf 确保已删除所有的 label 选项,并使用 cap_mkdb 重建数据库。

    如果策略限制对 master.passwd 的访问,也可能发生这种情况。这通常是由于管理员更改与系统使用的常规策略冲突的标签下的文件。在这些情况下,系统将读取用户信息,并且由于文件继承新标签,因此将阻止访问。使用 sysctl(8) 禁用策略,一切都应该恢复正常。