Puncte:0

Problemă SELinux - git status fatal: memorie lipsită? mmap failed: permisiunea refuzată

drapel cn

Am un server Centos 7.9 care rulează cu Apache și Git, totuși dacă fac un

[root@a]# stare git
fatal: Ne-ai memorie? mmap failed: permisiunea refuzată

Dar dacă dezactivați sau permiteți SE-Linux prin comenzile de mai jos, începe să funcționeze bine.

setenforce Permisiv

Aveți idee despre cum să remediați permanent această problemă cu SELinux activat?

Jurnalul de audit spune

node=a tip=PROCTITLE msg=audit(1630636505.296:37076): proctitle=67697400737461747573
nod=a tip=MMAP msg=audit(1630636505.296:37076): fd=3 flags=0x2
node=a tip=SYSCALL msg=audit(1630636505.296:37076): arch=c000003e syscall=9 succes=no exit=-13 a0=0 a1=3ebd0 a2=3 a3=2 items=0 ppid=8008 aud=8156 =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 cheie=(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
Matthew Ife avatar
drapel jo
Rădăcina este în mod normal nelimitată. Puteți furniza rezultatul lui `id -Z`?
Michael Hampton avatar
drapel cz
Verificați jurnalul de audit.
mahen3d avatar
drapel cn
@MichaelHampton Am adăugat jurnalul de audit în el spune ceva aproximativ 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
drapel cn
@MatthewIfe scrie unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Puncte:2
drapel jo

Problema este fișierul pe care îl mapați:

/www/site/.git/index

Acest fișier are tipul httpd_t cu toate acestea, acesta nu este de fapt un tip de fișier legitim, ci este un proces (sau un tip de domeniu, așa cum este cunoscut).

Probabil ar trebui să setați contextul /www ca fiind httpd_sys_content_t sau dacă doriți să permiteți serverului web să scrie în el httpd_sys_content_rw_t.

Dacă ar trebui să ghicesc, o să presupun că ai făcut o chcon -t httpd_t pe /www in eroare.

Cea mai bună abordare pentru a remedia acest lucru corect va fi să resetați și să restabiliți contextele fișierelor:

# semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'
# restorecon -rv /www

Acest lucru ar trebui să stabilească contextul corect și să prevină viitoare accidente de context.

Apoi testați starea git din nou pentru a verifica dacă a funcționat.

mahen3d avatar
drapel cn
da, am rulat asta, 'sudo chcon -Rv --type=httpd_t /www/'

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.