我已经从具有自定义上下文的可执行文件中创建了运行守护程序,例如:
system_u:system_r:daemon_name_t
它将以递归方式遍历整个目录并读取(不打开)这些未知文件(此文件可以具有任何上下文,不仅限于其域),因此我想用scontext daemon_name_t
编写类型强制规则和 ANY 目标上下文。
在编写类型强制规则时,我希望它保持尽可能的严格。我不想给它上下文unconfined_t
。
例如,如果我需要允许操作getattr
和read
,我想得到这种效果:
allow daemon_name_t { * } :file { getattr read };
我找不到使用SELinux
的任何可能方法。这有可能吗?任何帮助表示赞赏。
编辑:我发现有一种方法可以对file_type强制执行这样的允许规则:
allow daemon_name_t file_type:{type1 type2} {getattr read};
这对我来说已经足够了,但是最好知道是否有更好的解决方案。
答案 0 :(得分:1)
SELinux策略包含简化这样的编写规则的接口。可用的接口列在policy API documentation中(文档应由您的发行版中的 selinux-policy-doc 软件包提供)。例如,合适的接口可以是files_list_non_auth_dirs
和files_read_non_auth_files
:
files_list_non_auth_dirs(daemon_name_t)
files_read_non_auth_files(daemon_name_t)