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>.