17.17. MAC 框架的故障排除
上一页 | 第 17 章 强制访问控制 | 下一页

## 17.17. MAC 框架的故障排除

在开发过程中， 有一些用户报告了正常配置下出现的问题。 其中的一些问题如下所示：

### 17.17.1. 无法在 `/` 上启用 `multilabel` 选项

`multilabel` 标志在根 (`/`) 分区上没有保持启用状态！

看起来每五十个用户中就有一个遇到这样的问题， 当然， 在我们的初始配置过程中也出现过这样的问题。 更进一步的观察使得我相信这个所谓的 “bug” 是由于文档中不确切的描述， 或对其产生的误解造成的。 无论它是因为什么引发的， 下面的步骤应该能够解决此问题：

1. 编辑 `/etc/fstab` 并将根分区设置为 `ro`， 表示只读。

2. 重新启动并进入单用户模式。

3. 在 `/` 上运行 `tunefs` `-l enable`

4. 重新启动并进入正常的模式。

5. 运行 `mount` `-urw` `/` 并把 `/etc/fstab` 中的 `ro` 改回 `rw`， 然后再次重新启动。

6. 再次检查来自 `mount` 的输出， 已确认根文件系统上正确地设置了 `multilabel`。

### 17.17.2. 在 MAC 之后无法启动 X11 了

在使用 MAC 建立安全的环境之后， 就无法启动 X 了！

这可能是由于 MAC `partition` 策略， 或者对某个 MAC 标签策略进行了错误的配置导致的。 要调试这个问题， 请尝试：

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

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

3. 如果这些都无法解决问题， 将出错消息和对您的环境的描述， 发送到 TrustedBSD 网站上的 TrustedBSD 讨论邮件列表， 或者 FreeBSD 一般问题邮件列表 邮件列表。

### 17.17.3. Error: _secure_path(3) cannot stat `.login_conf`

当我试图从 `root` 用户切换到其同中的其他用户时， 出现了错误提示 _secure_path: unable to state .login_conf。

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

### 17.17.4. `root` 用户名被破坏了！

在普通模式， 甚至是单用户模式中， `root` 不被识别。 `whoami` 命令返回了 0 (零) 而 `su` 则提示 who are you?。 到底发生了什么？

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

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

上一页 | 上一级 | 下一页
17.16. User Lock Down | 起始页 | 第 18 章 安全事件审计

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

如果对于FreeBSD有问题，请先阅读 文档，如不能解决再联系 <questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.