Score:0

ปัญหาสิทธิ์การอ่านไดเรกทอรี Httpd เท่านั้น

ธง us

ในสถานการณ์ของฉัน ฉันต้องการไดเร็กทอรี 'httpd' ใน '/var/log/' เพื่อให้ผู้ใช้ในกลุ่ม 'devs' สามารถอ่านได้ (Amazon Linux 2) ใครช่วยแนะนำฉันถึงวิธีการทำให้สำเร็จได้บ้าง

เรามีนักพัฒนาไม่กี่คนที่ดูแลรักษาระบบ และฉันต้องการให้พวกเขาอ่านไฟล์บันทึกใน /var/log/httpd ได้อย่างง่ายดายโดยไม่จำเป็นต้องเข้าถึงรูท

สิ่งนี้จะช่วยได้ไหม ??

chmod -R go+r /var/log/httpd

หรือ chmod -R go+rX /var/log/httpd

หรือฉันต้องไปกับ:

chmod 644 /var/log/httpd

chgrp -R apache /var/log/httpd
chmod 02750 /var/log/httpd
chmod 0640 /var/log/httpd/*
สร้าง 0640 root apache

[root@ip-10-0-10-165 httpd]# ls -la
รวม 48
drwx------ 19 root devs 4096 3 เม.ย. 03:42 น.
drwxr-xr-x 11 root devs 4096 8 เม.ย. 07:45 น.
-rw-r--r-- 1 รูทรูท 0 ก.พ. 58 14:55 น. access_log
drwxr-xr-x 2 root devs 41 มี.ค. 1 20:44 u1-dev.qwerty.com
-rw-r--r-- 1 รูทรูท 1648 3 เม.ย. 03:42 error_log
-rw-r--r-- 1 รูทรูท 883 13 มี.ค. 03:41 error_log-20220313
drwxr-xr-x 2 root devs 41 มี.ค. 1 20:44 u4-dev.qwerty.com
drwxr-xr-x 2 รูทรูท 41 1 มี.ค. 20:44 langs.qwerty.com
drwxr-xr-x 2 root devs 41 มี.ค. 1 20:44 u8-dev3.qwerty.com
-rw-r--r-- 1 รูทรูท 0 ก.พ. 58 14:55 น. ssl_access_log
-rw-r--r-- 1 รูทรูท 314 3 เม.ย. 03:42 ssl_error_log
-rw-r--r-- 1 รูท 157 6 มี.ค. 03:50 ssl_error_log-20220313
-rw-r--r-- 1 รูทรูท 0 ก.พ. 58 14:55 น. ssl_request_log
drwxr-xr-x 2 apache apache 253 3 เม.ย. 03:42 น. www.qwerty.com
drwxr-xr-x 2 root devs 41 มี.ค. 1 20:44 u13-dev.qwerty.com
[root@ip-10-0-20-173 httpd]#

จะแก้ไขชุดสิทธิ์เหล่านั้นได้อย่างไร? วิธีที่ดีที่สุดที่นี่คืออะไร

Score:1
ธง ru

คุณสามารถใช้ acl สำหรับไดเร็กทอรีนี้และให้สิทธิ์สำหรับกลุ่ม devs ตัวอย่างเช่น:

setfacl -m g:devs:rx httpd/

คุณสามารถตั้งค่ารายการเข้าถึงไฟล์สำหรับไดเร็กทอรี ในตัวอย่างของคุณ คุณมีไดเร็กทอรี httpd ที่ตั้งค่าสิทธิ์สำหรับผู้ใช้/กลุ่มรูทเท่านั้น

# ls -la| เกรป httpd
drwx------ รูท 2 รูท 4096 8 เม.ย. 10:11 httpd

คุณสามารถตรวจสอบว่าไดเร็กทอรีนี้ไม่มีรายการ acl:

getfacl httpd/
#ไฟล์:httpd/
# เจ้าของ: root
# กลุ่ม: ราก
ผู้ใช้::rwx
กลุ่ม::---
อื่นๆ::---

เราตั้งค่าการอนุญาตสำหรับกลุ่ม devs ด้วยสิทธิ์การอ่านและดำเนินการ:

setfacl -m g:devs:rx httpd/

หลังจากตั้งค่าการอนุญาตแล้วจะมีลักษณะดังนี้:

getfacl httpd/
#ไฟล์:httpd/
# เจ้าของ: root
# กลุ่ม: ราก
ผู้ใช้::rwx
กลุ่ม::---
group:devs:r-x
หน้ากาก::r-x
อื่นๆ::---

สังเกตเครื่องหมายพิเศษ (+) เกี่ยวกับ acl ใดๆ ที่มีอยู่ในคำสั่ง ls

# ls -la| เกรป httpd
drwxr-x---+ 2 รูทรูท 4096 8 เม.ย. 10:11 httpd

อาจเป็นความคิดที่ดีที่จะทำซ้ำคำสั่ง setfacl ด้วยสวิตช์ -b เพื่อตั้งค่าการอนุญาตเริ่มต้น ฉันมักจะทำอย่างนั้น

-d, --default
           การดำเนินการทั้งหมดใช้กับ ACL เริ่มต้น รายการ ACL ปกติในชุดอินพุตจะได้รับการเลื่อนระดับเป็นรายการ ACL เริ่มต้น รายการ ACL เริ่มต้นในชุดอินพุตจะถูกยกเลิก (มีการออกคำเตือน
           หากเป็นเช่นนั้น)

ความนับถือ

samtech avatar
us flag
เพียงเพื่อความเข้าใจที่ดีขึ้น คุณช่วยอธิบายตัวอย่างเล็กน้อยได้ไหม
KuchnMar avatar
ru flag
ฉันขยายคำตอบด้านบน
samtech avatar
us flag
KuchnMar , setfacl -m g:devs:rx /var/log/httpd จะให้กลุ่ม 'devs' ของฉันเพื่อให้สิทธิ์ที่ต้องการโดยไม่ต้องเข้าถึงรูทใช่ไหม [root@ip-10-0-10-165 httpd]# getfacl /var/log/httpd getfacl: การลบ '/' นำหน้าออกจากชื่อพาธสัมบูรณ์ # ไฟล์: var/log/httpd # เจ้าของ: root #กลุ่ม:ผู้พัฒนา ผู้ใช้::rwx กลุ่ม::--- อื่นๆ::--- "
Score:0
ธง cm

ตามที่คุณติดแท็กคำถาม คุณกำลังใช้สภาพแวดล้อมแบบ Redhat สมมติว่าคุณกำลังใช้การติดตั้ง Apache httpd สต็อก คุณอาจอยู่เบื้องหลังการจัดการกับ logrotate ออกจากกล่อง logrotate ดำเนินการทุกวันจาก /etc/cron.daily. มันจะย้ายไฟล์บันทึกปัจจุบันของคุณออกไป สร้างไฟล์ใหม่และเริ่มต้นใหม่ httpd เพื่อที่จะเริ่มใช้ไฟล์บันทึกที่สร้างขึ้นใหม่และว่างเปล่า

ตรวจสอบ /etc/logrotate.d/httpd. ตัวอย่างเช่น เวอร์ชันสต็อกจะแสดง:

/var/log/httpd/*log {
    หายไป
    การแจ้งเตือน
    สคริปต์ที่ใช้ร่วมกัน
    การบีบอัดล่าช้า
    หลังการหมุน
        /bin/systemctl รีโหลด httpd.service > /dev/null 2>/dev/null || จริง
    ลงท้าย
}

หากคุณเพิ่มบรรทัดแบบนี้ในวงเล็บปีกกา logrotate จะหมุนเวียนและสร้างไฟล์บันทึกของคุณใหม่ด้วยเจ้าของที่ถูกต้องและการเป็นสมาชิกกลุ่ม:

    สร้าง 0640 root devs

สิ่งนี้สั่งให้ logrotate สร้างไฟล์บันทึกใหม่ด้วย ราก ในฐานะเจ้าของ ผู้พัฒนา เป็นกลุ่ม โดยมีสิทธิ์เป็นเจ้าของในการอ่าน/เขียน และกลุ่มที่อ่าน

จากนั้น คุณสามารถตั้งค่าไดเร็กทอรีบันทึก httpd ของคุณด้วยสิทธิ์และความเป็นเจ้าของ เช่น:

chown root:devs /var/log/httpd
chmod 0750 /var/log/httpd

สำหรับวันแรก คุณอาจต้องการตั้งค่าสิทธิ์ในไฟล์บันทึกด้วยตนเอง และ logrotate จะเข้ารับในวันต่อๆ ไป:

chown root:devs /var/log/httpd/*log
chmod 0640 /var/log/httpd/*log

คุณสามารถจินตนาการกับ ACL ตามที่แสดงโดย @KuchnMar ด้านบน แต่โซลูชันนี้ช่วยให้สิ่งต่าง ๆ เรียบง่ายและเข้ากันได้กับ *nix และระบบไฟล์ประเภทต่างๆ

สิ่งนี้อาจคล้ายกันบนโฮสต์สไตล์เดเบียน แต่อาจเรียกไฟล์กำหนดค่า logrotate ของคุณ อาปาเช่2 แทน.

ข้อมูลเพิ่มเติมสามารถดูได้ที่นี่:

โพสต์คำตอบ

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