我有一個運行在RHEL5安裝中的apache服務器上的php腳本。該腳本在「rpm -q --info packagename」上運行一個exec。使用selinux從apache + php查詢rpm
問題是它可以在許可模式下與selinux正常工作,但不能在完全啓用時使用。所以我認爲這是一個selinux問題。
我已經開始使用audit2allow來創建基於我發現的被拒絕條目的規則,但是現在審查日誌中不再有任何拒絕,但它仍然不會在啓用selinux的情況下運行。
在我的世界裏,它似乎在查詢系統是否允許運行,當selinux說「如果你試試這個,我會阻止你」。所以系統不運行exec。如果可以的話,我認爲我會得到一個「否認」,我可以根據它創建一個新的selinux規則。隨着selinux在寬容,我也沒有得到任何否認,但它的作品..
所以看來我將不得不處理這個困難的方式,並創建一個自定義規則爲selinux。說和做我做了一個:
module php_rpm 1.0;
require {
type httpd_t;
type bin_t;
type rpm_exec_t;
type rpm_var_lib_t;
class file { execute execute_no_trans getattr read execmod };
class dir { getattr search };
}
#============= httpd_t ==============
allow httpd_t rpm_exec_t:file { execute execute_no_trans getattr read execmod };
allow httpd_t rpm_var_lib_t:dir { getattr search };
Unfortunally這個什麼都沒有做我的問題,但assumingly搞亂了我的SELinux規則有點:P
是否有任何人試圖從PHP在SELinux能夠執行rpm和帶走了嗎?