NFS 和 CIFS 共享上的 SELinux 要求
如果您计划安装 `/opt/netapp`或者 `/opt/netapp/data`在 NAS 或 SAN 设备上,并且启用了 SELinux,您需要注意一些事项。
如果您计划安装 `/opt/netapp`或者 `/opt/netapp/data`从根文件系统以外的任何地方,并且您的环境中启用了 SELinux,您应该为已挂载的目录设置正确的上下文。对于您环境中的适用场景,请按照以下步骤设置并确认正确的 SELinux 上下文。
配置 SELinux 上下文 `/opt/netapp/data`已安装
如果您已安装 /opt/netapp/data`在您的系统中,SELinux 设置为 `Enforcing
,确保 SELinux 上下文类型为 /opt/netapp/data`设置为 `mysqld_db_t
,这是数据库文件位置的默认上下文元素。
-
运行此命令来检查上下文:
ls -dZ /opt/netapp/data
示例输出:
drwxr-xr-x. mysql root unconfined_u:object_r:default_t:s0 /opt/netapp/data
在此输出中,上下文是 default_t
。您应该将此上下文更改为mysqld_db_t
。 -
执行以下步骤,根据您安装的方式设置上下文
/opt/netapp/data
。-
运行以下命令将上下文设置为
mysqld_db_t
:semanage fcontext -a -t mysqld_db_t "/opt/netapp/data" `restorecon -R -v /opt/netapp/data
-
如果您已配置
/opt/netapp/data`在 `/etc/fstab
,你应该编辑 `/etc/fstab`文件。对于 `/opt/netapp/data/`mount 选项,添加 MySQL 标签为:context=system_u:object_r:mysqld_db_t:s0
-
卸载并重新安装 `/opt/netapp/data/`用于启用上下文。
-
如果您有直接 NFS 挂载,请运行以下命令将上下文设置为
mysqld_db_t
:mount <nfsshare>:/<mountpoint> /opt/netapp/data -o context=system_u:object_r:mysqld_db_t:s0
-
-
验证上下文是否设置正确:
ls -dZ /opt/netapp/data/
示例输出:
drwxr-xr-x. mysql root unconfined_u:object_r:mysqld_db_t:s0 /opt/netapp/data/
配置 SELinux 上下文 `/opt/netapp`已安装,并且 `/opt/netapp/data/`也单独安装
在这种情况下,首先,你应该设置上下文 /opt/netapp/data/`如上一节所述。在设置正确的上下文之后 `/opt/netapp/data/
,确保父目录 /opt/netapp`没有将 SELinux 上下文设置为 `file_t
。
-
运行此命令来检查上下文:
ls -dZ /opt/netapp
示例输出:
drwxr-xr-x. mysql root unconfined_u:object_r:file_t:s0 /opt/netapp
在此输出中,上下文是
file_t`应该改变。以下命令将上下文设置为 `usr_t
。您可以将上下文设置为除 `file_t`根据您的安全要求。 -
根据您安装的方式执行以下步骤来设置上下文
/opt/netapp
。-
运行以下命令来设置上下文:
-
semanage fcontext -a -t usr_t "/opt/netapp" restorecon -v /opt/netapp
-
如果您已配置
/opt/netapp`在 `/etc/fstab
,你应该编辑 `/etc/fstab`文件。对于 `/opt/netapp`mount 选项,添加 MySQL 标签为:context=system_u:object_r:usr_t:s0
-
卸载,然后重新安装 `/opt/netapp`用于启用上下文。
-
如果您有直接 NFS 挂载,请运行以下命令来设置上下文:
mount <nfsshare>:/<mountpoint> /opt/netapp -o context=system_u:object_r:usr_t:s0
-
验证上下文是否设置正确:
ls -dZ /opt/netapp
示例输出
-
drwxr-xr-x. mysql root unconfined_u:object_r:usr_t:s0 /opt/netapp
配置 SELinux 上下文 `/opt/netapp`已安装,并且 `/opt/netapp/data/`不单独安装
如果您已安装 /opt/netapp`在您的系统中,SELinux 设置为 `Enforcing
,确保 SELinux 上下文类型为 /opt/netapp`设置为 `mysqld_db_t
,这是数据库文件位置的默认上下文元素。
-
运行此命令来检查上下文:
ls -dZ /opt/netapp
示例输出:
drwxr-xr-x. mysql root unconfined_u:object_r:default_t:s0 /opt/netapp
在此输出中,上下文是 default_t
。您应该将此上下文更改为mysqld_db_t
。 -
执行以下步骤,根据您安装的方式设置上下文
/opt/netapp
。-
运行以下命令将上下文设置为
mysqld_db_t
:semanage fcontext -a -t mysqld_db_t "/opt/netapp" `restorecon -R -v /opt/netapp
-
如果您已配置
/opt/netapp`在 `/etc/fstab
,编辑/etc/fstab`文件。对于 `/opt/netapp/`mount 选项,添加 MySQL 标签为: `context=system_u:object_r:mysqld_db_t:s0
-
卸载,然后重新安装 `/opt/netapp/`用于启用上下文。
-
如果您有直接 NFS 挂载,请运行以下命令将上下文设置为
mysqld_db_t
:mount <nfsshare>:/<mountpoint> /opt/netapp -o context=system_u:object_r:mysqld_db_t:s0
-
-
验证上下文是否设置正确:
ls -dZ /opt/netapp/
示例输出:
drwxr-xr-x. mysql root unconfined_u:object_r:mysqld_db_t:s0 /opt/netapp/