Mysql

SElinux 策略授予 httpd 對 /etc/my.cnf 的讀取權限

  • April 30, 2013

如何修改SElinux策略以允許 httpd 讀取/etc/my.cnf

背景:我的 Web 應用程序連接到 mysql 數據庫。不是在程式碼中硬編碼憑據,而是將它們儲存在 mysql 組中/etc/my.cnf

[my_client]
protocol = TCP
user = john
password = mypasswd
database = my_db_name

my_client在 Web 應用程序中,我可以在連接到數據庫時簡單地參考。這在 Debian/Ubuntu 中執行良好,但在 Fedora 中卻失敗了。問題是 SElinux 阻止httpd讀取/etc/my.cnf,因此無法解決my_client。當我禁用 SElinux 時,問題就消失了。

這是執行此操作的策略,您需要執行以下操作來安裝它;

  1. 創建一個名為“policy”的目錄。
  2. 在該目錄中創建一個名為httpd_mysql

在文件中插入以下數據

policy_module(http_mysql, 1.0.0)
require {
   type httpd_t;
}
mysql_read_config(httpd_t)

現在執行make -f /usr/share/selinux/devel/Makefile load以添加策略。

引用自:https://serverfault.com/questions/503981