在开发过程中, 有一些用户报告了正常配置下出现的问题。 其中的一些问题如下所示:
multilabel
选项 multilabel
标志在根 (/)
分区上没有保持启用状态!
看起来每五十个用户中就有一个遇到这样的问题, 当然, 在我们的初始配置过程中也出现过这样的问题。 更进一步的观察使得我相信这个所谓的 “bug” 是由于文档中不确切的描述, 或对其产生的误解造成的。 无论它是因为什么引发的, 下面的步骤应该能够解决此问题:
编辑 /etc/fstab 并将根分区设置为 ro
, 表示只读。
重新启动并进入单用户模式。
在 / 上运行 tunefs -l enable
重新启动并进入正常的模式。
运行 mount -urw
/ 并把 /etc/fstab 中的 ro
改回 rw
,
然后再次重新启动。
再次检查来自 mount 的输出,
已确认根文件系统上正确地设置了 multilabel
。
在使用 MAC 建立安全的环境之后, 就无法启动 X 了!
这可能是由于 MAC partition 策略, 或者对某个 MAC 标签策略进行了错误的配置导致的。 要调试这个问题, 请尝试:
检查错误信息; 如果用户是在 insecure class 中, 则 partition 策略就可能导致问题。 尝试将用户的 class 重新改为 default class, 并使用 cap_mkdb 命令重建数据库。 如果这无法解决问题, 则进入第二步。
仔细检查标签策略。 确认针对有问题的用户的策略是正确的, 特别是 X11 应用, 以及 /dev 项。
如果这些都无法解决问题, 将出错消息和对您的环境的描述, 发送到 TrustedBSD 网站上的 TrustedBSD 讨论邮件列表, 或者 FreeBSD 一般问题邮件列表 邮件列表。
当我试图从 root 用户切换到其同中的其他用户时, 出现了错误提示 “_secure_path: unable to state .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>.