Mysql
SElinux 策略授予 httpd 對 /etc/my.cnf 的讀取權限
如何修改
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 時,問題就消失了。
這是執行此操作的策略,您需要執行以下操作來安裝它;
- 創建一個名為“policy”的目錄。
- 在該目錄中創建一個名為
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
以添加策略。