Score:0

ปัญหา SELinux - สถานะ git ร้ายแรง: หน่วยความจำไม่เพียงพอ? mmap ล้มเหลว: การอนุญาตถูกปฏิเสธ

ธง cn

ฉันมีเซิร์ฟเวอร์ Centos 7.9 ที่ทำงานกับ Apache และ Git แต่ถ้าฉันทำ

[root@a]# สถานะคอมไพล์
ร้ายแรง: หน่วยความจำไม่เพียงพอ? mmap ล้มเหลว: การอนุญาตถูกปฏิเสธ

แต่ถ้าปิดใช้งานหรืออนุญาต SE-Linux ผ่านคำสั่งด้านล่างก็จะทำงานได้ดี

setenforce อนุญาต

มีความคิดเกี่ยวกับวิธีแก้ไขปัญหานี้อย่างถาวรเมื่อเปิดใช้งาน SELinux หรือไม่

บันทึกการตรวจสอบกล่าวว่า

node=a type=PROCTITLE msg=audit(1630636505.296:37076): proctitle=67697400737461747573
โหนด = ประเภท = MMAP msg = ตรวจสอบ (1630636505.296:37076): fd = 3 ค่าสถานะ = 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 คีย์=(null)
node=a type=AVC msg=audit(1630636505.296:37076): avc: ปฏิเสธ { แผนที่ } สำหรับ 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 flag
โดยปกติรูตจะไม่ถูกจำกัด คุณสามารถให้ผลลัพธ์ของ `id -Z` ได้หรือไม่
Michael Hampton avatar
cz flag
ตรวจสอบบันทึกการตรวจสอบ
mahen3d avatar
cn flag
@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 flag
@MatthewIfe มันบอกว่า unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Score:2
ธง jo

ปัญหาคือไฟล์นี้ที่คุณกำลังแมป:

/www/site/.git/index

ไฟล์นี้มีประเภท 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(/.*)?'
# restorecon -rv /www

สิ่งนี้ควรตั้งค่าบริบทที่ถูกต้องและป้องกันความผิดพลาดในบริบทในอนาคต

จากนั้นทำการทดสอบ สถานะคอมไพล์ อีกครั้งเพื่อตรวจสอบว่าใช้งานได้

mahen3d avatar
cn flag
ใช่ฉันวิ่งสิ่งนี้ 'sudo chcon -Rv --type=httpd_t /www/'

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา