我在 RHEL 6.5 上运行 SELinux(在宽容模式下),并denied
在audit.log 中看到一个奇怪的错误。据推测,netutils_t进程类型可以管理标有 initrc_tmp_t 类型的文件,但对我来说似乎并非如此。详细信息如下。
我有一个初始化脚本,它将运行tcpdump
并将 gzip 压缩的 pcap 文件写入辅助驱动器(安装到 /mydrive)。存储的pcap日志文件的完整路径是/mydrive/Logs/Netlog_日期.pcap.gz。
我使用了semanage
,restorecon
因此 /mydrive/Logs/ 中的任何新文件都标有 initrc_tmp_t:
semanage fcontext --add --type initrc_tmp_t "/mydrive/Logs(/.*)?"
restorecon -r -v /mydrive/Logs
ls -Z
显示在后续启动时,由我的脚本创建的 /mydrive/Logs 中的新 pcap.gz 文件将按预期标记为 initrc_tmp_t 。
然而,audit.log 文件显示了denied
一些抱怨:
type=AVC msg=audit(1469228718.525:138): avc: denied { open } for pid=1535 comm="tcpdump" name="Netlog_07-22-2016_23-05-18.pcap.gz" dev=sdb1 ino=12845323 scontext=system_u:system_r:netutils_t:s0 tcontext=system_u:object_r:initrc_tmp_t:s0 tclass=file
audit2why
显示:
Missing type enforcement (TE) allow rule.
audit2allow
显示:
#============= netutils_t =============
allow netutils_t initrc_tmp_t:file open;
知道为什么会这样吗?根据手册页,netutils_t 应该已经能够打开 initrc_tmp_t