5.2. 生成 SELinux 策略模块:se policy generate
在以前的 Red Hat Enterprise Linux 版本中,
sepolgen 或 selinux-polgengui 工具用于生成 SELinux 策略。这些工具已合并到 sepolicy 套件中。在 Red Hat Enterprise Linux 7 中,sepolicy generate 命令用于生成初始 SELinux 策略模块模板。
与
sepolgen 不同,不需要以 root 用户身份运行 sepolicy generate。这个工具还会创建一个 RPM spec 文件,它可用于构建 RPM 软件包,该软件包将策略软件包文件(NAME.pp)和接口文件(NAME.if)安装到正确的位置,提供 SELinux 策略安装到内核中,并修复标签。设置脚本将继续安装 SELinux 策略并设置标签。此外,使用 sepolicy manpage 命令生成基于已安装策略的手册页。[7] 最后,sepolicy 生成 构建并编译 SELinux 策略以及手册页到 RPM 软件包中,准备好安装到其他系统上。
执行
sepolicy generate 时,会生成以下文件:
NAME.te- type enforcing file- 此文件定义特定域的所有类型和规则。
NAME.if- interface file- 此文件定义系统的默认文件上下文。它使用
NAME.te文件中创建的文件类型,并将文件路径与类型相关联。restorecon和rpm等实用程序使用这些路径来写入标签。 NAME_selinux.spec- RPM spec file- 此文件是一个 RPM spec 文件,可安装 SELinux 策略并设置标签。此文件还会安装 interface 文件和描述策略的 man page。您可以使用 sepolicy manpage -d NAME 命令生成 man page。
NAME.sh- helper shell 脚本- 此脚本有助于在系统上编译、安装和修复标记。它还会根据安装的策略生成 man page,编译和构建适合在其他系统上安装的 RPM 软件包。
如果可以生成 SELinux
策略模块,sepolicy generate 会将源域生成的所有路径输出到目标域。有关 sepolicy 生成 的详情,请查看 sepolicy-generate(8) 手册页。