18.8.MAC 框架的故障排除

multilabel 标志未能保持启用状态

如果根(/)分区的 multilabel 标志没有保持启用,可以按照以下步骤解决此临时错误:

  1. 编辑 /etc/fstab,将根分区设置为 ro(只读)。

  2. 以单用户模式重启系统。

  3. / 上运行 tunefs -l enable

  4. 重启系统。

  5. 运行 mount -urw /,然后将 /etc/fstab 中的 ro 改回 rw,再次重启系统。

  6. 使用 mount 检查输出,确保根文件系统上已正确设置 multilabel

在建立安全环境后,Xorg 无法启动

这可能是由 MAC 的 partition 策略或 MAC 标签策略中的标签错误引起的。可以按以下步骤进行调试:

  1. 检查错误信息。如果用户属于 insecure 类别,则可能是 partition 策略引起的。尝试将用户的类设置回 default 类,并使用 cap_mkdb 重建数据库。如果此方法无效,继续进行第二步。

  2. 仔细检查用户、Xorg 和 /dev 条目的标签策略设置。

  3. 如果这两步都没有解决问题,可以将错误信息及环境描述发送到 FreeBSD general questions mailing list 寻求帮助。

报错 _secure_path: unable to stat .login_conf

该错误通常在用户尝试从 root 用户切换到另一个用户时出现。通常发生在用户的标签设置比他们尝试切换的用户高时。例如,如果 joe 的默认标签是 biba/low,而 root 的标签是 biba/high,则 root 无法查看 joe 的主目录。无论 root 是否通过 su 切换为 joe,Biba 完整性模型都不允许 root 查看低完整性级别的对象。

系统不再识别 root

当出现这种情况时,whoami 返回 0su 返回 who are you?

这可能是因为通过 sysctl(8) 禁用了标签策略,或者安全策略模块被卸载。如果禁用了策略,则需要重新配置登录能力数据库。请仔细检查 /etc/login.conf,确保所有的 label 选项已删除,并使用 cap_mkdb 重建数据库。

如果是由于策略限制了对 master.passwd 的访问,也会导致此问题。这通常发生在管理员在与系统使用的通用策略冲突的标签下修改了文件的情况下。在这些情况下,用户信息会被系统读取,但由于文件继承了新的标签,访问会被阻止。可以通过 sysctl(8) 禁用该策略,系统会恢复正常。

最后更新于