mysql 宽容模式_mysql相关selinux安全上下文规则修改

本文介绍了Selinux的基本概念及其三种运行模式,详细讲解了如何通过chcon、restorecon和semanage命令管理安全上下文。在Selinux环境下,MySQL进程的domain标签为mysqld_t,其能访问的资源包括数据库数据文件、配置文件等,这些文件需要特定的标签。此外,文章还提到了与MySQL相关的Selinux布尔变量,这些变量控制着不同服务能否连接数据库。
摘要由CSDN通过智能技术生成

selinux基本概念

selinux是Security Enhanced Linux (安全强化 Linux)的简称,selinux涉及到主体(subject,一般指进程)、操作(operation)、对象(object,又称资源,如:文件、网络端口),selinux用于控制“主体”能以何种“操作”方式访问什么“对象”。

selinux环境中,所有的“主体(进程)”被赋予一个“domain”标签,所有的“对象”也被赋予一个“type”类型标签,“domain”标定的“主体”能访问哪些“type”标定的“对象”,由selinux的安全策略定义。

selinux三种状态

Enforcing:强制模式,selinux正严格按照策略运行中;

Permissive:宽容模式,selinux正在运行中,但是只记录日志,不执行实际限制;

Disabled:禁用模式,selinux环境未被开启;

查看selinux的状态:

getenforce

安全上下文命令

selinux针对文件的规则由安全上下文来管控,selinux安全上下文的三个主要命令:

1、chcon命令

临时修改selinux的安全上下文,一般不用。

chcon [-R] [-t type] [-u user] [-r role] 文件

chcom [-R] --reference=范例文件 文件

# 相关参数与选项

-R:连同该目录下的子目录也同时修改

-t:后面接安全上下文的类型栏位。例如:httpd_sys_content_t

-u:后面接身份识别(不重要)。例如:system_u

-r:后面接角色(不重要)。例如:system_r

-v:若有变动成功,将变动的结果列出来

--reference:拿某个文件当范例来修改后续接的文件的类型

2、restorecon命令

让文件的SELinux类型恢复为默认的SELinux类型,默认的SELinux类型由semanage命令所配置的规则所确定。当新配置了selinux安全上下文规则之后用改命令使之生效。

restorecon [-Rv] 文件/目录

相关参数

-R:连同子目录一起修改

-v:将过程显示到屏幕

3、semanage命令

查询/修改/增加/删除selinux安全上下文规则。主要通过该命令进行selinux的配置。

semanage [login/user/port/interface/fcontext/translation] -l

semanage fcontext -{a/d/m} [-frst] file_spec

相关参数与选项

-l:查询

fcontext:主要用在安全上下文方面的用途(常用的)

-a:增加的意思,你可以增加一些目录的默认安全上下文类型设置

-m:修改的意思

-d:删除的意思

MySQL用到的selinux标签

1、mysql进程主体的domain标签:

在selinux环境中,mysqld的“domain”标签为“mysqld_t”、mysqld在受限的“mysqld_t”域中仅能访问指定的资源;

2、selinux环境中mysql能访问的资源标签:

mysqld_db_t 这种文件类型用于标记MySQL数据库数据文件;

在RHEL/CentOS中数据文件的默认位置是“/var/lib/mysql”;

如果修改了MySQL数据文件的位置,新的位置必须使用这种类型标签;

mysqld_etc_t 这种文件类型用于标记MySQL的配置文件;

默认位置为:

主配置文件:“/etc/my.cnf”;

其他配置文件:“/etc/my.cnf.d/”目录下的文件;

mysqld_exec_t 这种文件类型用于标记MySQL主进程文件;

默认为:“/usr/libexec/mysqld”或者“/usr/sbin/mysqld”;

可以通过“whereis mysqld”命令查找;

mysqld_initrc_exec_t 这种文件类型用于标记MySQL的初始化脚本;

默认为:“/etc/rc.d/init.d/mysqld”;

“service mysqld start”中“mysqld”用的就是此脚本;

mysqld_log_t 这种文件类型用于标记日志文件;

mysqld_var_run_t 这种文件类型用于标记MySQL运行时产生的文件;

默认在“/var/run/mysqld”目录中,主要包括:

/var/run/mysqld/mysqld.pid

/var/run/mysqld/mysqld.sock

3、selinux中mysq的布尔变量:

allow_user_mysql_connect 当这个变量值为“1”时允许用户连接数据库;

exim_can_connect_db 当这个变量值为“1”时允许exim邮件程序访问数据库服务器;

ftpd_connect_db 当这个变量值为“1”时允许ftpd进程访问数据库服务器;

httpd_can_network_connect_db 当这个变量值为“1”时允许httpd进程访问数据库服务器;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值