Eu tenho o servidor Centos 7.9 rodando com Apache e Git, porém se eu fizer um
[root@a]# git status
fatal: Out of memory? mmap failed: Permission denied
Mas se desabilitar ou permitir o SE-Linux através dos comandos abaixo, ele começará a funcionar bem.
setenforce Permissive
Alguma idéia de como corrigir esse problema permanentemente com o SELinux ativado?
O log de auditoria diz
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: denied { 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
O problema é este arquivo que você está mapeando:
Este arquivo tem o tipo,
httpd_t
no entanto, que não é realmente um tipo de arquivo legítimo, mas é um processo (ou tipo de domínio, como é conhecido).Você provavelmente deve definir o contexto
/www
como sendohttpd_sys_content_t
ou se deseja permitir que o servidor da web escreva nelehttpd_sys_content_rw_t
.Se eu tivesse que adivinhar, vou assumir que você fez um
chcon -t httpd_t
erro/www
.A melhor abordagem para corrigir isso corretamente será redefinir e restaurar os contextos de arquivo:
Isso deve definir o contexto correto e evitar futuros contratempos de contexto.
Em seguida, teste
git status
novamente para verificar se funcionou.