Как заставить Gitweb работать с SELinux (на CentOS 6.5, с gitolite v3)

Я установил gitolite и gitweb в соответствии с руководством в этом блоге. Все работает очень хорошо. Я могу клонировать и зафиксировать на сервере.

Тем не менее, Gitweb не показывает проект с кодом ошибки 404 - No projects found, Я обнаружил, что SELinux запретил gitweb.cgi доступ к некоторым файлам. Gitweb может показывать репозитории только после перевода SELinux в разрешающий режим.

# setenforce 0

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

# semanage fcontext -a -t httpd_sys_content_t /var/lib/gitolite/projects.list
# restorecon -v /var/lib/gitolite/projects.list

У меня есть следующий журнал SELinux, но я действительно не знаю, что с ним делать. Я уже возился с этой проблемой на целый день, любые предложения приветствуются. заранее спасибо

type=AVC msg=audit(1390845123.601:280): avc:  denied  { rlimitinh } for  pid=2049 comm="gitweb.cgi" scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:system_r:httpd_git_script_t:s0 tclass=process
type=AVC msg=audit(1390845123.601:280): avc:  denied  { siginh } for  pid=2049 comm="gitweb.cgi" scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:system_r:httpd_git_script_t:s0 tclass=process
type=AVC msg=audit(1390845123.601:280): avc:  denied  { noatsecure } for  pid=2049 comm="gitweb.cgi" scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:system_r:httpd_git_script_t:s0 tclass=process
type=SYSCALL msg=audit(1390845123.601:280): arch=40000003 syscall=11 success=yes exit=0 a0=1d554e0 a1=1d52e38 a2=1d52e48 a3=1d532a8 items=0 ppid=1610 pid=2049 auid=500 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=2 comm="gitweb.cgi" exe="/usr/bin/perl" subj=unconfined_u:system_r:httpd_git_script_t:s0 key=(null)
type=AVC msg=audit(1390845124.272:281): avc:  denied  { search } for  pid=2049 comm="gitweb.cgi" name="gitolite" dev=dm-0 ino=658360 scontext=unconfined_u:system_r:httpd_git_script_t:s0 tcontext=system_u:object_r:gitosis_var_lib_t:s0 tclass=dir
type=SYSCALL msg=audit(1390845124.272:281): arch=40000003 syscall=195 success=no exit=-13 a0=9ce0890 a1=98f50c0 a2=996ff4 a3=98f5008 items=0 ppid=1610 pid=2049 auid=500 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=2 comm="gitweb.cgi" exe="/usr/bin/perl" subj=unconfined_u:system_r:httpd_git_script_t:s0 key=(null)
type=AVC msg=audit(1390845124.273:282): avc:  denied  { search } for  pid=2049 comm="gitweb.cgi" name="gitolite" dev=dm-0 ino=658360 scontext=unconfined_u:system_r:httpd_git_script_t:s0 tcontext=system_u:object_r:gitosis_var_lib_t:s0 tclass=dir
type=SYSCALL msg=audit(1390845124.273:282): arch=40000003 syscall=195 success=no exit=-13 a0=9ce0890 a1=98f50c0 a2=996ff4 a3=98f5008 items=0 ppid=1610 pid=2049 auid=500 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=2 comm="gitweb.cgi" exe="/usr/bin/perl" subj=unconfined_u:system_r:httpd_git_script_t:s0 key=(null)

1 ответ

Решение

Вы бы изменили контекст по умолчанию для любого из файлов или подкаталогов в '/var/lib/gitolite', а не только projects.list.

# semanage fcontext -a -t httpd_sys_content_t "/var/lib/gitolite(/.*)?"
# restorecon -v /var/lib/gitolite

Подробнее об этом отказе читайте на https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=736623.

Другие вопросы по тегам