18.8.MAC 框架的故障排除 ======================= 本节讨论常见的配置错误以及如何解决这些错误。 - **多重分区标志不在 root(/)分区上保持启用状态** 以下步骤可以解决此临时性错误: .. 1. 编辑 **/etc/fstab** 并将根分区设置为 ``ro``\ ,即只读。 2. 重新启动到单用户模式。 3. 在 **/** 上运行 ``tunefs -l enable``\ 。 4. 重新启动系统。 5. 运行 ``mount -urw /`` 命令,将 **/etc/fstab** 中的 ``ro`` 修改回 ``rw``\ ,然后重新启动系统。 6. 仔细检查 ``mount`` 的输出,以确保已在根文件系统上正确设置\ ``多重分区``\ 。 - **使用 MAC 建立安全环境后,无法启动 Xorg** 这可能是由 MAC 策略或其中一个 MAC ``partition`` 标记策略中的错误标记引起的。要进行调试,请尝试以下操作: .. 1. 检查错误消息。如果用户在 ``insecure`` 类中,则 ``partition`` 策略可能是罪魁祸首。尝试将用户 ``default`` 类设置回该分级,并使用 ``cap_mkdb`` 重建数据库。如果这不能解决问题,请转到步骤 2。 2. 仔细检查是否为用户、Xorg 和 **/dev** 条目正确设置标签策略。 3. 如果这些都不能解决问题,请将错误消息和环境简介发送到 `FreeBSD 通用问题邮件列表 <https://lists.freebsd.org/subscription/freebsd-questions>`__\ 。 - **出现错误** **``secure_path: unable to stat .login_conf``** 当用户尝试在系统中从该用户切换到 ``root`` 用户时,可能会出现此错误。当用户的标签设置高于他们尝试成为的用户的标签设置时,通常会发生此消息。例如,假如\ ``joe`` 的默认标签为 ``biba/low`` 且 ``root`` 标签为 ``biba/high``\ ,则 ``root`` 无法查看 ``joe`` 的主目录。无论 ``roo`` 是否使用 ``su`` 成为 ``joe``\ ,这都会发生,因为 Biba 的完整性模型不允许 ``root`` 查看设置在较低完整性级别的对象。 - **系统不识别** **``root``** 发生这种情况时,\ ``whoami`` 返回 ``0``\ ,\ ``su`` 返回 ``who are you?``\ 。 如果标签策略已被 `sysctl(8) <https://www.freebsd.org/cgi/man.cgi?query=sysctl&sektion=8&format=html>`__ 禁用或策略模块已卸载,则可能会发生这种情况。如果禁用该策略,则需要重新配置登录功能数据库。仔细检查 **/etc/login.conf** 确保已删除所有的 ``label`` 选项,并使用 ``cap_mkdb`` 重建数据库。 如果策略限制对 **master.passwd** 的访问,也可能发生这种情况。这通常是由于管理员更改与系统使用的常规策略冲突的标签下的文件。在这些情况下,系统将读取用户信息,并且由于文件继承新标签,因此将阻止访问。使用 `sysctl(8) <https://www.freebsd.org/cgi/man.cgi?query=sysctl&sektion=8&format=html>`__ 禁用策略,一切都应该恢复正常。