linux - 允许在 SELinux 中对具有不同上下文的不同文件进行具有自定义上下文的守护进程操作
问题描述
特殊类型的允许规则
我已经从具有自定义上下文的可执行文件创建了正在运行的守护进程,例如:
system_u:system_r:daemon_name_t
它将递归遍历整个目录并读取(不打开)这些未知文件(这些文件可以有任何上下文,不仅来自其域),所以我想用 scontextdaemon_name_t
和任何目标上下文编写类型强制规则。在编写类型强制规则时,我希望它尽可能地限制。我不想给它上下文unconfined_t
。
例如,如果我需要允许操作getattr
并且read
我想获得这种效果:
allow daemon_name_t { * } :file { getattr read };
我找不到任何可能的方法来做到这一点SELinux
。这甚至可能吗?任何帮助表示赞赏。
编辑:我发现有一种方法可以对 file_type 强制执行允许规则,如下所示:
allow daemon_name_t file_type:{type1 type2} {getattr read};
目前对我来说已经足够了,但如果有更好的解决方案,我会很高兴。
解决方案
SELinux 策略包含简化此类编写规则的接口。可用接口列在策略 API 文档中(文档应由您的发行版中的selinux-policy-doc包提供)。例如合适的接口可以是files_list_non_auth_dirs
and files_read_non_auth_files
:
files_list_non_auth_dirs(daemon_name_t)
files_read_non_auth_files(daemon_name_t)
推荐阅读
- amazon-web-services - AWS SAM,如何从 api 网关调用运行状态机?
- python - 解析列表列表并就地操作
- azure - 阻止 blob 服务:存在超时不起作用
- c++ - 我可以为类的前向声明省略非公共继承吗?
- python - 嵌套列表循环并希望使每个循环都有索引 0 和 1
- paypal - Paypal 沙箱到真实账户
- javascript - 将值从 URL 链接传递到表单字段
- python-3.x - 为什么 python 包 http.server 只能在本地工作?
- javascript - 无法在网页上上传带有 javascript 代码的文件
- c# - C#/.net:通过 TCP 连接传输许多小块数据