6.5 SELinux

增强安全性的 Linux(SELinux)是强制性访问控制(MAC)系统,它通过对每个系统对象应用称为* SELinux context *的安全标签来实现访问权限。 SELinux 策略模块使用 SELinux 上下文来定义有关进程,文件,端口和其他系统对象如何交互的规则。仅当策略规则允许时,才允许系统对象之间进行交互。

SELinux 上下文(应用于系统对象的标签)具有以下字段:userroletypesecurity level。类型信息而不是整个 SELinux 上下文最常用于定义有关进程如何与其他系统对象交互的规则。例如,MySQL SELinux 策略模块使用type信息定义策略规则。

您可以使用带有-Z选项的 os 命令(例如 lsps )查看 SELinux 上下文。假设已启用 SELinux 并且 MySQL 服务器正在运行,以下命令将显示mysqld进程和 MySQL 数据目录的 SELinux 上下文:

mysqld process:

shell> ps -eZ | grep mysqld
system_u:system_r:mysqld_t:s0    5924 ?        00:00:03 mysqld

MySQL 数据目录:

shell> cd /var/lib
shell> ls -Z | grep mysql
system_u:object_r:mysqld_db_t:s0 mysql

where:

  • system_u是系统进程和对象的 SELinux 用户身份。

  • system_r是用于系统进程的 SELinux 角色。

  • objects_r是用于系统对象的 SELinux 角色。

  • mysqld_t是与 mysqld 进程关联的类型。

  • mysqld_db_t是与 MySQL 数据目录及其文件关联的类型。

  • s0是安全级别。

有关解释 SELinux 上下文的更多信息,请参考发行版的 SELinux 文档。