1

Не могу понять, в каких разрешениях может быть отказано. Запуск сценария cgi из командной строки работает нормально.

http_proxy="" curl http://url/ -o file

Производит curl(7): permission denied

(те же проблемы с wget)

РЕДАКТИРОВАТЬ (Обходное решение) Прямо сейчас мне нужно частично отключить SELinux, чтобы заставить это работать (пробовал перебирать все разрешения безрезультатно).

2 ответа2

3

Догадаться. Несмотря на то, что скрипт запускается как apache из командной строки, SELinux кажется, останавливает curl и wget когда скрипт cgi вызывается через Интернет.

Отредактируйте /etc/selinux/config , измените SELINUX=permissive (к вашему сведению: это имеет последствия)

Ищите лучший способ справиться с этим.

0

У меня была похожая проблема с SELinux, блокирующая вызовы curl из CGI. Лучший способ противостоять этому:

  1. Воспроизведите проблему, чтобы она вошла в /var/log/audit/audit.log
  2. Разобрать журнал, чтобы создать модуль:

    $ tail /var/log/audit/audit.log | audit2allow -M curlCgi
    
  3. Загрузите сгенерированный модуль:

    $ /usr/sbin/semodule -i curlCgi.pp
    

Больше чтения: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Fixing_Problems-Allowing_Access_audit2allow.ht

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .