Назад | Перейти на главную страницу

Ошибка отказа в доступе SELinux для сценариев bash, запускаемых из сценария perl-cgi

У меня есть среда автоматизации, которая использует Perl-CGI для запуска скриптов на сервере. Поскольку у нас включен SELinux, я получаю ошибки отказа в доступе, когда сценарий пытается запустить сценарий bash.

Ниже приведены журналы ошибок, которые я могу найти в audit.log для сценария.

type=AVC msg=audit(1397170377.265:109255): avc:  denied  { execute } for  pid=23776 comm="run_step.sh" name="step.sh" dev=sda1 ino=795126 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=system_u:object_r:httpd_sys_rw_content_t:s0 tclass=file
type=AVC msg=audit(1397170377.265:109255): avc:  denied  { execute_no_trans } for  pid=23776 comm="run_step.sh" path="/var/www/html/test/generated.5465/step.sh" dev=sda1 ino=795126 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=system_u:object_r:httpd_sys_rw_content_t:s0 tclass=file

Когда я устанавливаю SELinux в разрешающий режим, я могу запускать эти сценарии без ошибок. Но когда это принудительно, я не могу этого сделать.

Также я установил метку httpd для файлов, но все еще получаю эти ошибки. Есть мысли, как это решить.

Глядя на сообщения audit.log, кажется, что некоторые файлы имеют неправильную маркировку. Если вы пытаетесь запустить файлы, я думаю, что они должны быть помечены httpd_sys_script_t скорее, чем httpd_sys_rw_content_t.