当查看特定安全上下文的策略规则时,SELinux 会使用被称为 AVC(Access Vector Cache,访问矢量缓存)的缓存,如果访问被拒绝(也被称为 AVC 拒绝),则会在一个日志文件中记录下拒绝消息。
这些被拒绝的消息可以帮助诊断和解决常规的 SELinux 策略违规行为,至于这些拒绝消息到底被记录在什么位置,则取决于 auditd 和 rsyslogd 守护进程的状态:
1、若 auditd 守护进程正在运行,则拒绝消息将被记录与 /var/log/audit/audit.log 中。
2、若 auditd 守护进程没有运行,但 rsyslogd 守护进程正在运行,则拒绝消息会记录到 /var/log/messages 中。
注意,如果 auditd 和 rsyslogd 都在运行,那么拒绝消息将发送到 audit.log 和 messages 日志文件中。
因此,当 SELinux 出现问题时,就可以求助 SELinux 的日志系统,该日志系统中详细地记录了 SELinux 中出现的问题,并提供了解决建议。
我们当前可以使用的日志系统只有 auditd,当然这个服务是需要安装的,在我们的系统中 auditd 服务是已经安装的。如果没有安装,则使用 yum 安装即可,命令如下:
[root@localhost ~]# yum -y install auditd
安装完成之后,只需启动 auditd 服务即可,命令如下:
[root@localhost ~]# service auditd start
当然,还要使 auditd 服务是开机自启动的,命令如下:
[root@localhost ~]# chkconfig auditd on [root@localhost ~]# chkconfig --list | grep auditd auditd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
其实这些工作,系统都已经帮我们完成了,不过为了保险起见,最好还是检查一下。