如何创建自定义SELinux标签

妖怪

我编写了一个服务/单个二进制应用程序,试图在Fedora 24上运行,它使用systemd运行,二进制文件已部署到 /srv/bot

我编写的此服务/应用程序需要在该目录中创建/打开/读取和重命名文件。

我首先开始基于SELinux创建新策略:允许进程在特定目录中创建任何文件

但是当我的应用需要重命名时,输出将显示警告:

#!!!! WARNING: 'var_t' is a base type.
allow init_t var_t:file rename;

我四处搜寻,发现我应该使用比基本类型更具体的SELinux标签,但是所有在线示例都向您展示了httpd / nginx / etc中的现有标签。

有没有办法为我自己的应用创建自定义标签?

我的想法是创建类似myapp_var_t的东西,使用

semanage fcontext -a -t my_app_var_t '/srv/bot(/.*)?'
restorecon -R -v /srv/bot

.pp将使用此自定义类型的自定义文件

如果有更好的解决方法,那也可以。

谢谢

更新

经过更多搜索后,我认为我要执行的操作的正确术语是创建新词types,这使我进入了https://docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3036916

基本上说,运行

sepolgen /path/to/binary

而且我能够得到一个模板,然后将其编译成pp文件并加载,仍然会出现一些错误,但是看起来我已经接近要执行的操作了。

如果我可以使用,我会更新这篇文章

妖怪

以跑步为起点

sepolgen /path/to/binary

这给你:

app.fc
app.sh
app.if
app.spec
app.te

要创建一个新文件SELinux file context以应用于包含您的程序/守护程序将修改的文件的父目录,请编辑app.te文件并添加:

type app_var_t;
files_type(app_var_t)

第一行声明了新类型,第二行调用了执行一些魔术操作并将其设置为文件类型的宏(结果是您不能在文件或目录上使用流程上下文行app_exec_t),有关更多信息,请参见“重新访问SELinux类型”。不同类型的信息

声明类型后,您需要告诉SELinux您的应用程序可以使用它,就我而言,我添加了

allow app_t app_var_t:dir { add_name remove_name write search};
allow app_t app_var_t:file { unlink create open rename write read };

这两行基本上说,允许app_t类型(这是我的应用程序的域),并使用上下文写入/搜索/ etc目录,app_var_t并允许它使用上下文app_var_t创建/打开/删除/ etc文件

难题的最后一部分是以某种方式告诉SELinux哪种文件夹和文件应该获得每种类型,您可以通过编辑app.fc文件来做到这一点(fc =>文件上下文)

在我的情况下,此文件只有两行:

/srv/bot/app        --  gen_context(system_u:object_r:app_exec_t,s0)
/srv/bot(/.*)?          gen_context(system_u:object_r:app_var_t,s0)

第一行直接指向部署在我的服务器上的二进制文件,因此该行获得了app_exec_t上下文。

第二行表示:

将app_var_t应用于目录/ srv / bot以及目录/ srv / bot内的所有文件

请注意第一行在--路径和调用之间的位置gen_context--意味着,仅将其应用于文件。在第二种情况下,我们什么都没有(只有空格),这意味着我希望将其应用于所有匹配的目录和文件,另一种选择是-d仅应用目录。

我现在有一个有效的策略,可以使用自定义策略部署我的应用程序,并且一切正常。(我的策略在.te文件中有很多条目,但这不在此问题的范围内。)

帮助我获得此解决方案的额外阅读材料:

sepolgen让事情变得更轻松

在盲目审核之前先想一想-2 mydomain

SELinux for RED HAT DEVELOPERS(Long PDF)

SElinux模块(1):类型和规则

样本策略(特别是postgresql)

了解文件上下文文件

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何创建自定义[QUOTE]标签?

来自分类Dev

Ionic 4标签:如何创建自定义标签

来自分类Dev

如何为剃刀创建自定义标签助手?

来自分类Dev

如何创建执行回调的树枝自定义标签?

来自分类Dev

如何创建自定义标签视图,如下所示

来自分类Dev

如何创建自定义标签视图,如下所示

来自分类Dev

如何创建下图所示的自定义标签?

来自分类Dev

如何创建一个erlydtl自定义标签?

来自分类Dev

如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

来自分类Dev

如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

来自分类Dev

创建自定义标签:可选绑定

来自分类Dev

trello api自定义标签创建

来自分类Dev

创建自定义操作标签栏

来自分类Dev

创建自定义标签栏

来自分类Dev

如何创建包含其他标签助手的自定义标签助手

来自分类Dev

Facebook:使用自定义“页面标签” URL创建标签

来自分类Dev

如何自定义DatePickerDialog以获取标签?

来自分类Dev

如何自定义Java Tabpane的标签?

来自分类Dev

如何自定义DatePickerDialog以获取标签?

来自分类Dev

如何显示自定义html标签?

来自分类Dev

如何在Android Studio中创建自定义JavaDoc标签?

来自分类Dev

如何在GitHub上为问题创建自定义标签?

来自分类Dev

如何在不使用customElement的情况下创建自定义HTML标签?

来自分类Dev

在MVC中创建自定义HTML帮助程序扩展时如何避免重复的脚本标签

来自分类Dev

如何在Google图表中创建自定义hAxis标签?

来自分类Dev

如何在Salesforce托管包中创建自定义标签图标

来自分类Dev

如何使用注释代替XML在嵌入式Tomcat中创建自定义组件标签

来自分类Dev

Swift和Xcode-如何创建自定义标签栏图标

来自分类Dev

如何创建带有自定义颜色的中文和日语字符的标签

Related 相关文章

  1. 1

    如何创建自定义[QUOTE]标签?

  2. 2

    Ionic 4标签:如何创建自定义标签

  3. 3

    如何为剃刀创建自定义标签助手?

  4. 4

    如何创建执行回调的树枝自定义标签?

  5. 5

    如何创建自定义标签视图,如下所示

  6. 6

    如何创建自定义标签视图,如下所示

  7. 7

    如何创建下图所示的自定义标签?

  8. 8

    如何创建一个erlydtl自定义标签?

  9. 9

    如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

  10. 10

    如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

  11. 11

    创建自定义标签:可选绑定

  12. 12

    trello api自定义标签创建

  13. 13

    创建自定义操作标签栏

  14. 14

    创建自定义标签栏

  15. 15

    如何创建包含其他标签助手的自定义标签助手

  16. 16

    Facebook:使用自定义“页面标签” URL创建标签

  17. 17

    如何自定义DatePickerDialog以获取标签?

  18. 18

    如何自定义Java Tabpane的标签?

  19. 19

    如何自定义DatePickerDialog以获取标签?

  20. 20

    如何显示自定义html标签?

  21. 21

    如何在Android Studio中创建自定义JavaDoc标签?

  22. 22

    如何在GitHub上为问题创建自定义标签?

  23. 23

    如何在不使用customElement的情况下创建自定义HTML标签?

  24. 24

    在MVC中创建自定义HTML帮助程序扩展时如何避免重复的脚本标签

  25. 25

    如何在Google图表中创建自定义hAxis标签?

  26. 26

    如何在Salesforce托管包中创建自定义标签图标

  27. 27

    如何使用注释代替XML在嵌入式Tomcat中创建自定义组件标签

  28. 28

    Swift和Xcode-如何创建自定义标签栏图标

  29. 29

    如何创建带有自定义颜色的中文和日语字符的标签

热门标签

归档