簡體   English   中英

告訴SELinux讓Apache對文檔根外部的PHP文件執行訪問

[英]Tell SELinux to Give Apache Execute Access to PHP Files Outside Document Root

我有一個保留共享PHP腳本的目錄(名稱是任意的,但不是/ var /,/ usr /或SELinux將為其進行特定設置的任何內容):
/ whatever / scripts /

這些腳本可以由cronjobs執行,也可以由Apache或Tomcat執行,因此輸出可以包含在網頁中。

SELinux拒絕許可:

類型= AVC消息=審核(1363205612.276:476923):AVC:拒絕{執行} pid = 6855 comm =“ sh” name =“ script.php” dev = sda3 ino = 4325828 scontext = system_u:system_r:httpd_t:s0 tcontext = unconfined_u:object_r:etc_runtime_t:s0 tclass =文件

類型= SYSCALL msg =審核(1363205612.276:476923):arch = c000003e syscall = 59成功=否退出= -13 a0 = 2431d10 a1 = 2431d70 a2 = 24301e0 a3 = 50個物品= 0 ppid = 23100 pid = 6855 auid = 4294967295 uid = 48 gid = 48 euid = 48 suid = 48 fsuid = 48 egid = 48 sgid = 48 fsgid = 48 tty =(none)ses = 4294967295 comm =“ sh” exe =“ / bin / bash” subj = system_u:system_r: httpd_t:s0鍵=(空)

類型= AVC消息=審核(1363205612.277:476924):AVC:拒絕{執行} pid = 6855 comm =“ sh” name =“ script.php” dev = sda3 ino = 4325828 scontext = system_u:system_r:httpd_t:s0 tcontext = unconfined_u:object_r:etc_runtime_t:s0 tclass =文件

類型= SYSCALL msg =審核(1363205612.277:476924):arch = c000003e syscall = 21成功=否退出= -13 a0 = 2431d10 a1 = 1 a2 = 0 a3 = 50個物品= 0 ppid = 23100 pid = 6855 auid = 4294967295 uid = 48 gid = 48 euid = 48 suid = 48 fsuid = 48 egid = 48 sgid = 48 fsgid = 48 tty =(none)ses = 4294967295 comm =“ sh” exe =“ / bin / bash” subj = system_u:system_r: httpd_t:s0鍵=(空)

我知道有一個命令可以告訴SELinux允許使用此命令,但這讓我望而卻步。

即使使目錄和腳本所有者以及組apache都不起作用,所以這不是經典的權限問題,而是SELinux特有的。

系統是CentOS 6.3。

我通過以下兩個命令找到了解決方案:

semanage fcontext -a -t httpd_sys_script_exec_t'/whatever/scripts(/.*)?'

restorecon -R -v /無論/腳本/

這樣一來,Apache可以在該目錄中執行PHP腳本,並在重新引導或系統范圍內重新標記后仍然存在。

我將其與需要從PHP腳本和Apache運行的可執行程序一起使用

sudo chcon -v -t httpd_sys_script_exec_t my-executable

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM