Такая проблема может зависеть от используемой вами ОС и от того, как она настроена. Некоторые дистрибутивы 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
строки в audit2allow
команду. Он выведет вам изменения, необходимые для того, чтобы сделать SELinux счастливым. Но обычно предлагаемые изменения необходимо вносить в саму политику SELinux, а это не то, что вам следует делать в вашем случае (тем не менее этот вывод может дать некоторую подсказку о том, что происходит).
На следующей странице описывается похожая проблема и различные способы ее решения: http://sheltren.com/stop-disabling-selinux
x
) для файла? Вы указали интерпретатор сценария в строке Шебанга?