允许对具有自定义上下文的守护程序进行操作,以在SELinux中对具有不同上下文的不同文件进行

时间:2018-06-28 13:37:44

标签: linux redhat fedora selinux

特殊类型的允许规则

我已经从具有自定义上下文的可执行文件中创建了运行守护程序,例如:

system_u:system_r:daemon_name_t

它将以递归方式遍历整个目录并读取(不打开)这些未知文件(此文件可以具有任何上下文,不仅限于其域),因此我想用scontext daemon_name_t编写类型强制规则和 ANY 目标上下文。 在编写类型强制规则时,我希望它保持尽可能的严格。我不想给它上下文unconfined_t

例如,如果我需要允许操作getattrread,我想得到这种效果:

allow daemon_name_t { * } :file { getattr read };

我找不到使用SELinux的任何可能方法。这有可能吗?任何帮助表示赞赏。

编辑:我发现有一种方法可以对file_type强制执行这样的允许规则:

allow daemon_name_t file_type:{type1 type2} {getattr read};

这对我来说已经足够了,但是最好知道是否有更好的解决方案。

1 个答案:

答案 0 :(得分:1)

SELinux策略包含简化这样的编写规则的接口。可用的接口列在policy API documentation中(文档应由您的发行版中的 selinux-policy-doc 软件包提供)。例如,合适的接口可以是files_list_non_auth_dirsfiles_read_non_auth_files

files_list_non_auth_dirs(daemon_name_t)
files_read_non_auth_files(daemon_name_t)