这个例子考虑了一个相对较小的存储系统,用户不超过 50 人。用户将拥有登录功能,并能存储数据和访问资源。
为此情景,mac_bsdextended(4) 和 mac_seeotheruids(4) 策略模块可以共存,并阻止访问系统对象,同时隐藏用户进程。
首先将以下行添加到 /boot/loader.conf 中:
mac_seeotheruids_load="YES" 可通过将此行添加到 /etc/rc.conf 中来激活 mac_bsdextended(4) 安全策略模块。
ugidfw_enable="YES" 存储在 /etc/rc.bsdextended 中的默认规则将在系统初始化时加载。但是,默认条目可能需要修改。由于这台机器预期只为用户提供服务,因此除了最后两行外,一切都可以保持注释状态,以便默认情况下强制加载用户拥有的系统对象。
将所需用户添加到此机器并重启。为测试目的,在两个控制台上尝试以不同用户身份登录。运行 ps aux 以查看其他用户的进程是否可见。验证尝试在另一个用户的主目录上运行 ls(1) 是否失败。
除非特定的 sysctl s 已被修改以阻止超级用户访问,否则不要尝试用 root 用户进行测试。
添加新用户后,他们的 macbsdextended(4)规则将不会出现在规则集列表中。要快速更新规则集,请使用 kldunload(8)和 kldload(8)卸载和重新加载安全策略模块。