Рейтинг:0

Проблема с SELinux — фатальный статус git: не хватает памяти? Ошибка mmap: Отказано в доступе

флаг cn

У меня есть сервер Centos 7.9, работающий с Apache и Git, однако, если я сделаю

[root@a]# статус git
фатальный: Недостаточно памяти? Ошибка mmap: Отказано в доступе

Но если отключить или разрешить SE-Linux с помощью приведенных ниже команд, он начнет работать нормально.

setenforce Разрешительный

Любая идея о том, как навсегда решить эту проблему с включенным SELinux?

Журнал аудита говорит

node=a type=PROCTITLE msg=audit(1630636505.296:37076): proctitle=67697400737461747573
node=a type=MMAP msg=audit(1630636505.296:37076): fd=3 flags=0x2
node=a type=SYSCALL msg=audit(1630636505.296:37076): arch=c000003e syscall=9 success=no exit=-13 a0=0 a1=3ebd0 a2=3 a3=2 items=0 ppid=8008 pid=8156 auid =1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=570 comm="git" exe="/usr/bin/git" subj=unconfined_u :unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
node=a type=AVC msg=audit(1630636505.296:37076): avc: deny {map} for pid=8156 comm="git" path="/www/site/.git/index" dev="sda2" ino= 540400 scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:httpd_t:s0 tclass=file permissive=0
Matthew Ife avatar
флаг jo
Корень обычно не ограничен. Можете ли вы предоставить результат `id -Z`?
Michael Hampton avatar
флаг cz
Проверьте журнал аудита.
mahen3d avatar
флаг cn
@MichaelHampton Я добавил журнал аудита, он говорит что-то о scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:httpd_t:s0 tclass=file permissive=0
mahen3d avatar
флаг cn
@MatthewIfe говорит: unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Рейтинг:2
флаг jo

Проблема в том, что этот файл вы сопоставляете:

/www/сайт/.git/индекс

Этот файл имеет тип httpd_t однако на самом деле это не законный тип файла, а процесс (или тип домена, как он известен).

Вероятно, вам следует установить контекст /www как бы httpd_sys_content_t или если вы хотите разрешить веб-серверу писать на него httpd_sys_content_rw_t.

Если бы мне пришлось угадывать, я бы предположил, что вы сделали chcon -t httpd_t на /www в ошибке.

Лучший способ исправить это правильно — сбросить и восстановить контексты файлов:

# semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'
# восстановитькон -rv /www

Это должно установить правильный контекст и предотвратить будущие ошибки контекста.

Затем проверьте статус git еще раз, чтобы проверить, что это сработало.

mahen3d avatar
флаг cn
да, я запускал это, 'sudo chcon -Rv --type=httpd_t /www/'

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

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