Spec-Zone.ru › MySQL 9.2

8.7.4 Контекст файла SELinux

Сервер MySQL читает и записывает во многие файлы. Если контекст SELinux не установлен для этих файлов корректно, доступ к ним может быть запрещен.

В следующих инструкциях используется двоичный файл semanage для управления контекстом файлов; в RHEL он входит в пакет policycoreutils-python-utils:

yum install -y policycoreutils-python-utils

После установки двоичного файла semanage, вы можете перечислить контексты файлов MySQL, используя semanage с опцией fcontext.

semanage fcontext -l | grep -i mysql

Настройка контекста каталога данных MySQL

По умолчанию каталог данных расположен по адресу /var/lib/mysql/; используемый контекст SELinux — mysqld_db_t.

Если вы измените конфигурационный файл, чтобы использовать другое расположение для каталога данных или для любого из файлов, обычно находящихся в каталоге данных (например, двоичных логов), вам может потребоваться настроить контекст для нового расположения. Например:

semanage fcontext -a -t mysqld_db_t "/path/to/my/custom/datadir(/.*)?"
restorecon -Rv /path/to/my/custom/datadir

semanage fcontext -a -t mysqld_db_t "/path/to/my/custom/logdir(/.*)?"
restorecon -Rv /path/to/my/custom/logdir

Настройка контекста файла журнала ошибок MySQL

По умолчанию для RedHat RPM расположение — /var/log/mysqld.log; используемый тип контекста SELinux — mysqld_log_t.

Если вы измените конфигурационный файл, чтобы использовать другое расположение, вам может потребоваться настроить контекст для нового расположения. Например:

semanage fcontext -a -t mysqld_log_t "/path/to/my/custom/error.log"
restorecon -Rv /path/to/my/custom/error.log

Настройка контекста файла PID

По умолчанию расположение файла PID — /var/run/mysqld/mysqld.pid; используемый тип контекста SELinux — mysqld_var_run_t.

Если вы измените конфигурационный файл, чтобы использовать другое расположение, вам может потребоваться настроить контекст для нового расположения. Например:

semanage fcontext -a -t mysqld_var_run_t "/path/to/my/custom/pidfile/directory/.*?"
restorecon -Rv /path/to/my/custom/pidfile/directory

Настройка контекста сокета Unix-домена

По умолчанию расположение сокета Unix-домена — /var/lib/mysql/mysql.sock; используемый тип контекста SELinux — mysqld_var_run_t.

Если вы измените конфигурационный файл, чтобы использовать другое расположение, вам может потребоваться настроить контекст для нового расположения. Например:

semanage fcontext -a -t mysqld_var_run_t "/path/to/my/custom/mysql\.sock"
restorecon -Rv /path/to/my/custom/mysql.sock

Настройка контекста каталога secure_file_priv

Для версий MySQL начиная с 5.6.34, 5.7.16 и 8.0.11.

Установка RPM-пакета MySQL Server создает каталог /var/lib/mysql-files/, но не устанавливает для него контекст SELinux. Каталог /var/lib/mysql-files/ предназначен для использования в операциях, таких как SELECT ... INTO OUTFILE.

Если вы включили использование этого каталога, установив secure_file_priv, вам может потребоваться установить контекст следующим образом:

semanage fcontext -a -t mysqld_db_t "/var/lib/mysql-files/(/.*)?"
restorecon -Rv /var/lib/mysql-files

Измените этот путь, если вы использовали другое расположение. Для обеспечения безопасности этот каталог никогда не должен находиться внутри каталога данных.

Дополнительную информацию об этой переменной см. в документации secure_file_priv.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/selinux-file-context.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API