15.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 partition 策略, 或者对某个 MAC 标签策略进行了错误的配置导致的。 要调试这个问题, 请尝试:

  1. 检查错误信息; 如果用户是在 insecure class 中, 则 partition 策略就可能导致问题。 尝试将用户的 class 重新改为 default class, 并使用 cap_mkdb 命令重建数据库。 如果这无法解决问题, 则进入第二步。

  2. 仔细检查标签策略。 确认针对有问题的用户的策略是正确的, 特别是 Xorg 应用, 以及 /dev 项。

  3. 如果这些都无法解决问题, 将出错消息和对您的环境的描述, 发送到FreeBSD 一般问题邮件列表

出现_secure_path: unable to stat .login_conf

这个提示通常在用户拥有高于它将要成为的那个用户的 标签设定时出现。 例如, 如果系统上的一个用户 joe 拥有默认的 biba/low 标签, 而 root 用户拥有 biba/high, 它也就不能查看 joe 的主目录, 无论 root 是否使用了 su 来成为 joe。 这种情况下, Biba 完整性模型, 就不会允许 root 查看在较低完整性级别中的客体。

系统不再识别 root:

此错误发生时, whoami 命令返回了 0 (零) 而 su 则提示 who are you?

标签策略被禁用可能会导致这样的问题, 无论是通过 sysctl(8) 或是卸载了策略模块。 如果打算禁用策略, 或者临时禁用它, 则登录性能数据库需要重新配置, 在其中删除 label 选项。 仔细检查 login.conf 以确保所有的 label 选项都已经删除, 然后使用 cap_mkdb 命令来重建数据库。

这种情况也可能在通过策略来限制访问 master.passwd 文件或对应的那个数据库时发生。这主要是由于管理员修改受某一 label 限制的文件,而与系统级的通用策略发生了冲突。这时,用户信息将由系统直接读取,而在文件继承了新的 label 之后则会拒绝访问。此时,只需使用 sysctl(8) 禁用这一策略,一切就会恢复正常了。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.