在开发过程中, 有一些用户报告了正常配置下出现的问题。 其中的一些问题如下所示:
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 一般问题邮件列表 邮件列表。
.login_conf
当我试图从 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>.