Попросите SELinux предоставить Apache исполняемый доступ к файлам PHP вне корневого каталога документов

У меня есть каталог, в котором хранятся общие PHP-скрипты (имя произвольное, но это не /var/, /usr/ или что-то, для чего у SELinux будут особые настройки):
/ все / скрипты /

Эти сценарии могут выполняться cronjobs или Apache или Tomcat, поэтому выходные данные могут быть включены в веб-страницу.

SELinux отказывает в разрешении:

type = AVC msg = аудит (1363205612.276:476923): avc: отказано {выполнить} для pid=6855 comm="sh" name="script.php" dev=sda3 ino=4325828 scontext=system_u:system_r:httpd_t:s0 tcontext=undefined_u:object_r:etc_runtime_t:s0 tclass= файл

тип =SYSCALL msg= аудит (1363205612.276:476923): arch=c000003e системный вызов = 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=(нет) ses=4294967295 comm="sh" exe="/bin/bash" subj=system_u:system_r:httpd_t:s0 key=(null)

type = AVC msg = аудит (1363205612.277:476924): avc: отказано {выполнить} для pid=6855 comm="sh" name="script.php" dev=sda3 ino=4325828 scontext=system_u:system_r:httpd_t:s0 tcontext=undefined_u:object_r:etc_runtime_t:s0 tclass= файл

тип =SYSCALL msg= аудит (1363205612.277:476924): arch=c000003e системный вызов = 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=(нет) ses=4294967295 comm="sh" exe="/bin/bash" subj=system_u:system_r:httpd_t:s0 key=(null)

Я знаю, что есть команда, которую я могу использовать, чтобы сказать SELinux, что это разрешено, но она ускользает от меня.

Даже создание владельца каталога и скрипта и группы apache не работает, поэтому это не классическая проблема с разрешениями, а специфичная для SELinux.

Система CentOS 6.3.

1 ответ

Решение

Я нашел решение с помощью этих двух команд:

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

restorecon -R -v / что угодно / scripts /

Это позволяет Apache выполнять PHP-скрипты в этом каталоге и сохраняется после перезагрузки или общесистемной перемаркировки.

Я использую это с исполняемыми программами, которые мне нужно запускать из моих сценариев PHP и Apache.

sudo chcon -v -t httpd_sys_script_exec_t my-executable
Другие вопросы по тегам