10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 41.2 mb
PDF (A4)- 41.3 mb
PDF (RPM)- 39.5 mb
HTML下载(TGZ)- 9.3 mb
HTML下载(Zip)- 9.3 mb
HTML下载(RPM)- 7.8 mb
手册(TGZ)- 260.6 kb
手册(Zip)- 371.8 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

6.7.6 SELinux故障处理

对SELinux的故障排除通常包括将SELinux置于许可模式,重新运行有问题的操作,检查SELinux审计日志中的访问拒绝消息,以及在问题解决后将SELinux重新置于强制模式。

避免将整个系统置于允许模式使用setenforce,你可以只允许MySQL服务运行通过设置它的SELinux域(mysqld_t)转换为允许模式semanage命令:

语义允许-a mysqld_t

完成故障排除后,使用此命令将mysqld_t域返回执行模式:

语义允许-d mysqld_t

SELinux将拒绝操作的日志写入/var/log/audit/audit.log.你可以通过搜索否认消息。

Grep "denied" /var/log/audit/audit.log

以下部分描述了可能会遇到与selinux相关的问题的几个常见领域。

文件的上下文

如果MySQL目录或文件有错误的SELinux上下文,访问可能会被拒绝。如果将MySQL配置为读取或写入非默认目录或文件,则会出现此问题。例如,如果您将MySQL配置为使用非默认数据目录,则该目录可能没有预期的SELinux上下文。

尝试在非默认数据目录上使用无效的SELinux上下文启动MySQL服务将导致以下启动失败。

Shell > systemctl start mysql。service mysqld的Job。服务失败,控制进程退出,提示错误码。参见“systemctl status mysqld”。Service”和“journalctl -xe”。

在这种情况下,a否认消息已记录到/var/log/audit/audit.log

shell> grep "denied" /var/log/audit/audit.log type=AVC msg=audit(1587133719.786:194): AVC: denied {write} for pid=7133 comm="mysqld" name="mysql" dev="dm-0" ino=51347078 scontext=system_u:system_r:mysqld_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=dir permit =0

有关为MySQL目录和文件设置合适的SELinux上下文的信息,请参见第6.7.4节,“SELinux文件上下文”

端口访问

SELinux希望MySQL Server等服务使用特定的端口。更改端口而不更新SELinux策略可能导致业务失败。

mysqld_port_tport type定义MySQL监听的端口。如果您配置MySQL Server使用非默认端口,如3307端口,并且没有更新策略以反映该更改,MySQL服务将无法启动:

Shell > systemctl start mysqld。service mysqld的Job。服务失败,控制进程退出,提示错误码。参见“systemctl status mysqld”。Service”和“journalctl -xe”。

在这种情况下,拒绝消息被记录到/var/log/audit/audit.log

shell> grep "denied" /var/log/audit/audit.log type=AVC msg=audit(1587134375.845:198): AVC: denied {name_bind} for pid=7340 comm="mysqld" src=3307 scontext=system_u:system_r:mysqld_t:s0 tcontext=system_u:object_r:unreserved_port_t:s0 tclass=tcp_socket permit =0

有关为MySQL设置适当的SELinux端口上下文的信息,请参见第6.7.5节,“SELinux TCP端口上下文”.在启用MySQL特性时,如果使用了没有使用所需上下文定义的端口,则会出现类似的端口访问问题。有关更多信息,请参见第6.7.5.2节“设置MySQL特性的TCP端口上下文”

应用程序更改

SELinux可能不知道应用程序的更改。例如,新版本、应用程序扩展或新特性可能以SELinux不允许的方式访问系统资源,从而导致访问拒绝。在这种情况下,您可以使用audit2allow实用程序来创建自定义策略,以允许在需要的地方进行访问。创建自定义策略的典型方法是将SELinux模式更改为允许模式,在SELinux审计日志中标识访问拒绝消息,并使用audit2allow实用程序来创建允许访问的自定义策略。

有关使用audit2allow实用工具,请参考发行版的SELinux文档。10bet官方网站

如果你遇到MySQL的访问问题,你认为应该由标准的MySQL SELinux策略模块来处理,请在你的发行版的错误跟踪系统中打开一个错误报告。