5.5. 审计日志中的 SELinux 拒绝


Linux Audit 系统默认将日志条目存储在 /var/log/audit/audit.log 文件中。

要仅列出与 SELinux 相关的记录,请使用 ausearch 命令,并将 message type 参数设置为 AVCAVC_USER,例如:

# ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR
Copy to Clipboard

审计日志文件中的 SELinux 拒绝条目类似如下:

type=AVC msg=audit(1395177286.929:1638): avc:  denied  { read } for  pid=6591 comm="httpd" name="webpages" dev="0:37" ino=2112 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:nfs_t:s0 tclass=dir
Copy to Clipboard

这个条目最重要的部分是:

  • avc: denied - SELinux 执行的操作,并在 AVC 中记录
  • { read } - 被拒绝的操作
  • pid=6591 - 试图执行被拒绝操作的主体的进程识别符
  • comm="httpd" - 用于调用分析进程的命令名称
  • httpd_t - 进程的 SELinux 类型
  • nfs_t - 受进程操作影响的对象的 SELinux 类型
  • tclass=dir - 目标对象类

以前的日志条目可转换为:

SELinux 拒绝 PID 为 6591、以及从带有 nfs_t 类型的目录进行读取的 httpd_t 类型的 httpd 进程

当 Apache HTTP 服务器试图访问使用 Samba 套件类型标记的目录时,会出现以下 SELinux 拒绝信息:

type=AVC msg=audit(1226874073.147:96): avc:  denied  { getattr } for  pid=2465 comm="httpd" path="/var/www/html/file1" dev=dm-0 ino=284133 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:samba_share_t:s0 tclass=file
Copy to Clipboard
  • { getattr } - getattr 条目表示源进程正在尝试读取目标文件的状态信息。这在读取文件前发生。SELinux 会拒绝这个操作,因为进程会访问该文件,且没有适当的标签。通常的权限包括 getattr, read, 和 write
  • path="/var/www/html/file1" - 该进程试图访问的对象(目标)的路径。
  • scontext="unconfined_u:system_r:httpd_t:s0" - 试图拒绝操作的进程(源)的 SELinux 上下文。在这种情况下,它是 Apache HTTP 服务器的 SELinux 上下文,它使用 httpd_t 类型运行。
  • tcontext="unconfined_u:object_r:samba_share_t:s0" - 试图访问的对象(目标)的 SELinux 上下文。在这种情况下,它是 file1 的 SELinux 上下文。

这个 SELinux 拒绝信息可以被解释为:

SELinux 拒绝了 PID 为 2465 的 httpd 进程访问带有 samba_share_t 类型的 /var/www/html/file1 文件。除非有其他配置,在 httpd_t 域中运行的进程无法访问该文件。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat