自定义systemd_tmpfiles_t的SELinux策略时出现‘unknown type default_t’错误的解决求助
自定义systemd_tmpfiles_t的SELinux策略时出现‘unknown type default_t’错误的解决方法
嗨,我来帮你搞定这个SELinux策略编译报错的问题!
你遇到的unknown type default_t错误,原因其实很直白:用sepolicy generate生成的custom_rules.te文件里,只声明了systemd_tmpfiles_t这一个类型,但你从audit2allow拿到的规则里用到了default_t,编译工具找不到这个类型的定义,自然就报错了。
下面给你两种实用的解决思路:
方法一:补充类型声明到自定义规则文件
- 打开你生成的
custom_rules.te文件,找到gen_require代码块,把default_t添加进去,修改后应该是这样:
gen_require(' type systemd_tmpfiles_t; type default_t; ')
- 再把audit2allow给出的规则行
allow systemd_tmpfiles_t default_t:file map;追加到文件末尾,现在编译这个te文件就不会再出现类型未知的报错了。
方法二:先尝试开启SELinux布尔值(更简便的方案)
audit2allow里已经贴心提示了:这个AVC拒绝可以通过开启domain_can_mmap_files布尔值来解决,完全不用写自定义规则。你可以先试试这个快速方案:
执行下面的命令开启布尔值:
semanage boolean -m --on domain_can_mmap_files
如果这个操作能解决你的原始权限问题,那完全不用折腾自定义规则啦。
备注:内容来源于stack exchange,提问作者Vinod
相关产品推荐
相关产品推荐

