Я использую proftpd для виртуального FTP-хостинга с MySQL.
Я начал писать детальные политики 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=file
Выход ps auxwf|grep 50590
сейчас пусто - процесса больше не существует. Похоже, он пытается делать это при каждой попытке входа в систему.
Обновить: Заполнен запрос об ошибке / функции, патч отправлен разработчиком: http://bugs.proftpd.org/show_bug.cgi?id=3971
Клиенты MySQL, которые связываются с libmysqlclient читать глобальные параметры из [client]
раздел /etc/my.cnf
. Это типичное поведение для таких клиентов, и ProFTPD - такой клиент когда вы используете его модуль MySQL.
Логическое значение SELinux ftpd_full_access
разрешит этот доступ, но также эффективно отключает SELinux для всех операций FTP-демона, поэтому его не следует использовать без особой осторожности.
Если бы это был я, я бы подал запрос функции против selinux-policy
запросить логическое значение, разрешающее этот доступ, или, возможно, добавить его в ftpd_connect_db
логическое.
Из оф. Документа
Вопрос: Как мне настроить mod_sql
чтобы он использовал зашифрованные соединения (например SSL / TLS) на сервер базы данных?
Ответ: Если вы используете MySQL, вы можете настроить это в [клиент] раздел вашего my.cnf
Файл конфигурации.
Вот почему proftpd пытается прочитать /etc/my.cnf
Просто добавлю, что в исходном коде также упоминается это:
Я проверил недавний снимок. В частности, 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");