Такая проблема может зависеть от используемой вами ОС и от того, как она настроена. Некоторые дистрибутивы Linux (в основном, основанные на RHEL, такие как CentOS или Fedora) поставляются с SELinux, активированным по умолчанию. Это можно проверить и временно изменить с помощью следующих команд:
root@ls:~# /usr/sbin/getenforce
Enforcing
root@ls:~# /usr/sbin/setenforce Permissive
root@ls:~# /usr/sbin/getenforce
Permissive
Вы также можете получить более полное представление о текущей конфигурации с помощью:
root@ls:~# /usr/sbin/sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: enforcing
Policy version: 21
Policy from config file: targeted
Это изменение можно сделать постоянным, отредактировав файл /etc/selinux/config
и установив переменную SELINUX
permissive
или disabled
.
Но правильный способ решения этой проблемы, если вы действительно находитесь в такой ситуации, это проверить файл журнала /var/log/audit/audit.log
. Он будет содержать все события, связанные с правилами SELinux. Затем вы, вероятно, должны дать вашему сценарию правильный контекст, то есть авторизацию для запуска пользователем apache/php. Проверка контекста безопасности SELinux выполняется с помощью ls -Z
:
root@ls:~# ls -alZ /var/www/cgi-bin/
drwxr-xr-x root root system_u:object_r:httpd_sys_script_exec_t .
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t ..
Этот список Пользователь, Роль и Тип каждого файла / каталога. Здесь тип httpd_sys_script_exec_t
дает файлам в каталоге cgi разрешение на выполнение httpd. Ваш сценарий оболочки, вероятно, должен иметь такой же тип.
Вы также можете audit.log
строки audit.log в команду audit2allow
. Он выведет вам изменения, необходимые для того, чтобы сделать SELinux счастливым. Но обычно предлагаемые изменения необходимо вносить в саму политику SELinux, а это не то, что вы должны делать в вашем случае (тем не менее, этот вывод может дать некоторую подсказку о том, что происходит).
На следующей странице описывается похожая проблема и различные способы ее решения: http://sheltren.com/stop-disabling-selinux