文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  SELinux 檔案上下文

8.7.4 SELinux 檔案上下文

MySQL 伺服器會讀取和寫入許多檔案。如果這些檔案的 SELinux 上下文未正確設定,則可能會拒絕存取檔案。

以下指示使用 semanage 二進位檔來管理檔案上下文;在 RHEL 上,它是 policycoreutils-python-utils 套件的一部分

yum install -y policycoreutils-python-utils

安裝 semanage 二進位檔之後,您可以使用 semanagefcontext 選項來列出 MySQL 檔案上下文。

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 網域 Socket 上下文

Unix 網域 Socket 的預設位置是 /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 目錄上下文

適用於 5.6.34、5.7.16 和 8.0.11 版之後的 MySQL 版本。

安裝 MySQL 伺服器 RPM 會建立 /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 文件。