17.11. MAC partition (分区) 模块

模块名: mac_partition.ko

对应的内核配置: options MAC_PARTITION

引导选项: mac_partition_load="YES"

mac_partition(4) 策略将把进程基于其 MAC 标签放到特定的 “partitions” (分区) 中。 这是一种特殊类型的 jail(8), 但对两者进行比较意义不大。

这个模块应加到 loader.conf(5) 文件中, 以便在启动过程中启用这些规则。

绝大多数这一策略的配置是通过 setpmac(8) 工具来完成的, 它将在后面介绍。 这个策略可以使用下面的 sysctl:

当启用了这个规则时, 用户将只能看到他们自己的, 以及其他与他们同处一个 partition 的进程, 而不能使用能够越过 partition 的工具。 例如, insecure class 中的用户, 就无法使用 top 命令, 以及其他需要产生新进程的工具。

要设置或删除 partition 标签中的工具, 需要使用 setpmac:

# setpmac partition/13 top

这将把 top 命令加入到 insecure class 中的用户的标签集。 注意, 所有由 insecure class 中的用户产生的进程, 仍然会留在 partition/13 标签中。

17.11.1. 例子

下面的命令将显示 partition 标签以及进程列表:

# ps Zax

接下来的这个命令将允许察看其他用户的进程 partition 标签, 以及那个用户正在运行的进程:

# ps -ZU trhodes

注意:

除非加载了 mac_seeotheruids(4) 策略, 否则用户就看不到 root 的标签。

非常手工化的实现, 可能会在 /etc/rc.conf 中禁用所有的服务, 并用脚本来按不同的标签来启动它们。

注意:

下面的几个策略支持基于所给出的三种标签的完整性设定。 这些选项, 连同它们的限制, 在模块的联机手册中进行了进一步介绍。

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

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.