这个例子针对的是一个相对较小的存储系统, 其用户数少于五十。 用户能够在其上登录, 除了存储数据之外, 还可以访问一些其他资源。
在这个场景中, mac_bsdextended(4) 可以与 mac_seeotheruids(4) 并存, 以达到禁止访问非授权资源, 同时隐藏其他用户的进程的目的。
首先, 在 /boot/loader.conf 中加入:
mac_seeotheruids_load="YES"
随后, 可以通过下述 rc.conf 变量来启用 mac_bsdextended(4) 安全策略模块:
ugidfw_enable="YES"
默认规则保存在 /etc/rc.bsdextended 中, 并在系统初始化时加载; 但是, 其中的默认项可能需要进行一些改动。 因为这台机器只为获得了授权的用户提供服务, 因此除了最后两项之外, 其它内容都应保持注释的状态。 这两项规则将默认强制加载属于用户的系统客体。
在这台机器上添加需要的用户并重新启动。 出于测试的目的, 请在两个控制台上分别以不同的用户身份登录。 运行 ps aux 命令来看看是否能看到其他用户的进程。 此外, 在其他用户的主目录中运行 ls(1) 命令, 如果配置正确, 则这个命令会失败。
不要尝试以 root 用户的身份进行测试, 除非您已经修改了特定的 sysctl 来阻止超级用户的访问。
注意: 在添加新用户时, 他们的 mac_bsdextended(4) 规则不会自动出现在规则集表中。 要迅速更新规则集, 只需简单地使用 kldunload(8) 和 kldload(8) 工具来卸载并重新加载安全策略模块。
本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.