如何将 SELinux mypol.te 文件转换为脚本的 semanage 命令

如何将 SELinux mypol.te 文件转换为脚本的 semanage 命令

为 MySQL 日志设置一个特殊的日志目录。这需要我运行命令

grep mysqld /var/log/audit/audit.log | audit2allow -M mypol

多次授权MySQL在MySQL日志目录中搜索、打开、写入等。

最终结果是一个mypol.te如下所示的文件:

module mypol 1.0;

require {
    type mysqld_log_t;
    type mysqld_t;
    class dir { write search read remove_name open add_name };
}

#============= mysqld_t ==============
allow mysqld_t mysqld_log_t:dir open;
#!!!! This avc is allowed in the current policy

allow mysqld_t mysqld_log_t:dir { write remove_name search read add_name };

不过,我想semanage在脚本中使用该命令在将来的版本中自动执行此操作。

想知道如何将上述内容转换mypol.te为一组semanage命令?

答案1

好的 - 这并不符合目标,但您可以通过构建 RPM 来实现您的目标。由于您可以编写 shell 脚本,因此 RPM 不会有问题。

您的目标是安装 mySQL 并执行一些安装后任务,例如添加用户和添加 SELinux 策略。

我将尝试概述一个通用的收据。您可以找到有关构建 rpm 的更好概述这里

  1. 从以下位置了解您的 mySQL 风格:mysql-sources 的镜像- 找到 src.rpm 版本,下载它。
  2. 安装 src.rpm - 这将为您提供一个 SPEC 文件(它还将安装 mySQL 的源代码 - 准备编译)
  3. 将您的 SEPolicy 文件包含到源代码部分
  4. 在 %configure 部分中,您可以设置特定的配置选项 - 就像您在
  5. 修改 %build 部分,以便在那里创建“您的”目录,同时编译您的 SEPolicy
  6. 在 %post-section 中安装所需的用户/组 - 不要忘记这些可能已经安装的情况 - 在 %post-section 中激活已编译的 SELinux-policy
  7. 将构建的模块包含在 %install - 部分中,以及“您的”特殊目录

一旦您完成了第一个 RPM,接下来的 RPM 就会很容易。但也许你应该把这个问题当作一个单独的问题。我在UL上没有找到好的。

相关内容