我使用proftpd来使用MySQL进行虚拟FTP托管。
我已经开始编写细粒度的SELinux策略,并发现它试图访问my.cnf文件。
type=AVC msg=audit(1378191337.059:153431): avc: denied { getattr } for pid= comm="proftpd" path="/etc/my.cnf" dev="dm-1" ino=1180081 scontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:mysqld_etc_t:s0 tclass=file
type=AVC msg=audit(1378191337.059:153432): avc: denied { read } for pid=50590 comm="proftpd" name="my.cnf" dev="dm-1" ino=1180081 scontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:mysqld_etc_t:s0 tclass=file
type=AVC msg=audit(1378191337.059:153432): avc: denied { open } for pid=50590 comm="proftpd" path="/etc/my.cnf" dev="dm-1" ino=1180081 scontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:mysqld_etc_t:s0 tclass=fileps auxwf|grep 50590的输出现在是空的-进程已经不存在了。看来每次登录都要这么做。
更新:已归档的bug/特性请求,由开发人员提交的修补程序:http://bugs.proftpd.org/show_bug.cgi?id=3971
发布于 2013-09-03 10:48:44
只是想补充一下,源代码也提到了以下内容:
我检查了最近的一张快照。具体来说,proftpd-cvs-20130903/contrib/mod_sql_mysql.c:
485 /* Make sure the MySQL config files are read in. This will read in
486 * options from group "client" in the MySQL .cnf files.
487 */
488 mysql_options(conn->mysql, MYSQL_READ_DEFAULT_GROUP, "client");发布于 2013-09-03 08:27:50
MySQL客户机,它链接到来自/etc/my.cnf的[client]部分的libmysqlclient 阅读全局选项。这是此类客户端和ProFTPD就是这样一个客户端使用其MySQL模块时的典型行为。
SELinux布尔ftpd_full_access将允许这种访问,但它也有效地禁用了整个SELinux守护进程的操作,因此在使用时不应非常谨慎。
如果是我,我会针对selinux-policy提交一个特性请求,请求添加一个布尔值以允许这种访问,或者将其添加到ftpd_connect_db布尔值中。
https://serverfault.com/questions/535807
复制相似问题