Рейтинг:1

Как настроить SELinux, чтобы сценарий CGI мог создавать файл

флаг ng

Я пишу CGI для httpd на CentOS 7, который создает и записывает файлы в домашнюю директорию. Когда я включаю SELinux, это вызывает внутреннюю ошибку сервера. Как настроить SELinux?

Команда sudo ausearch -m AVC, USER_AVC -ts последние показывает ошибку ниже.

время->Пт 24 сен 09:03:23 2021
type=PROCTITLE msg=audit(1632441803.684:10739412): proctitle=2F7573722F62696E2F707974686F6E330075706C6F61642E636769
type=SYSCALL msg=audit(1632441803.684:10739412): arch=c000003e syscall=2 success=no exit=-13 a0=7f69aa9978c0 a1=a00c2 a2=180 a3=3 items=0 ppid=12020 pid=5135 auid=4294967295 uid =1018 gid=1018 euid=1018 suid=1018 fsuid=1018 egid=1018 sgid=1018 fsgid=1018 tty=(none) ses=4294967295 comm="upload.cgi" exe="/usr/bin/python3.6" subj=system_u:system_r:httpd_user_script_t:ключ s0=(null)
type=AVC msg=audit(1632441803.684:10739412): avc: deny {add_name} for pid=5135 comm="upload.cgi" name="16r3sq_k" scontext=system_u:system_r:httpd_user_script_t:s0 tcontext=unconfined_u:object_r:httpd_user_script_exec_t :s0 tclass=разрешенный каталог=0

Контекст каталога устанавливается, как показано ниже.

$ ls -ldZ загружено
drwxrwxr-х. пользователь пользователь unconfined_u:object_r:httpd_user_rw_content_t:s0 загружен
Michael Hampton avatar
флаг cz
Ваша программа `upload.cgi` пытается создать файл с именем `16r3sq_k` в каком-то каталоге. В логах не указано какой каталог. Какой это каталог?
флаг ng
@MichaelHampton Каталог `~/public_html/uploaded/`. Я установил `httpd_user_rw_content_t` для каталога, но я не уверен, что это правильные настройки контекста.
Michael Hampton avatar
флаг cz
SELinux очень настаивает на том, чтобы веб-сервер или процессы, которые он порождает, не могли записывать в домашние каталоги пользователей (разрешено только чтение). Поместите свой веб-сайт в подходящее место в файловой системе, которое распознает SELinux, например. `/srv/www/myappname`.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.