MySql SeLinux策略权限

时间:2013-04-25 18:17:40

标签: linux centos selinux

目前我已经设置了一个apache服务器(它正在运行一个内部网站点),我有点卡住了。当用户转到页面时,它运行mysql查询并使用INTO OUTFILE从该查询生成管道分隔文件。我遇到的问题是SELinux阻止mysql将文件写入我想要的目录。

我要写的目录是

/var/www/html

这样当用户生成该文件时,用户将收到该文件的链接,以便他们可以直接从浏览器下载。

我已尝试将目录的上下文设置为

mysqld_etc_t
mysqld_home_t
mysqld_var_t

并尝试过,

var_t

但是我不确定我是否正确地做了var_t。

我已经尝试将SELinux设置为Permissive用于测试目的,并且mysql能够成功写入该文件夹,所以我知道所有阻碍我的是SELinux。

我不想禁用SeLinux,也不想将mysqld设置为允许运行。那么我的问题就变成了我必须要做什么来允许mysql访问写入该文件夹? 即使有人能指出我正确的方向,也会非常感激。

1 个答案:

答案 0 :(得分:1)

解决方案并不像您期望的那么容易。允许mysql访问httpd的任何类型并不是一个好主意,并且出于安全原因允许httpd访问任何mysqld的类型也不是一个好主意。

同样将类型更改为不足,因为httpd无法访问,否则mysqld无法访问。

最后一点是创建一个新的SELinux类型并为httpd和mysqld授予访问权限并标记该类型的共享目录。您可以在httpd和mysqld之间的目录中共享数据。

有关控制SELinux访问权限和创建自己规则的说明,请参阅http://debian-handbook.info/browse/wheezy/sect.selinux.html