อนุญาตให้กระบวนการที่ไม่ใช่รูทเข้าถึงไดเร็กทอรีโฮมทั้งหมดโดยไม่ส่งผลต่อความปลอดภัยหรือไม่?


1

แนวคิดใดบ้างที่จะอนุญาตให้กระบวนการที่ไม่ใช่รูทหนึ่งเข้าถึง (อ่านและเขียน) โฮมไดเร็กตอรี่ทั้งหมดโดยไม่ส่งผลต่อความปลอดภัย? ผู้ใช้ปกติไม่ควรเข้าถึงไดเรกทอรีหลักของกันและกัน

ยินดีต้อนรับทุกความคิดแม้กระทั่งแนวคิดที่บ้าคลั่ง (การตั้งค่า nfs & kerberos?) :)

ฉันจำเป็นต้องสร้างเว็บอินเตอร์เฟสสำหรับไดเรกทอรีบ้านของผู้ใช้โดยที่กระบวนการที่ไม่ใช่รูทเป็นกระบวนการของเว็บเซิร์ฟเวอร์

ไฟล์ใหม่ควรมีผู้ใช้โฮมไดเรกทอรีในฐานะเจ้าของ เป็นไปได้ไหม

คำตอบ:


2

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

ใช้ด้วยความระมัดระวังและลองใช้กับ VM ก่อนหากคุณไม่สะดวกสบาย 100%


1

ฉันเดาว่าปัญหาคือโฮมไดเร็กทอรีไม่สามารถเรียกใช้แบบสาธารณะได้ในสภาพแวดล้อมของคุณ

คุณสามารถใส่รายการควบคุมการเข้าถึงในโฮมไดเร็กตอรี่ทั้งหมดที่ให้สิทธิ์ผู้ใช้หรือกลุ่มดำเนินการกับไดเรกทอรี จากนั้นเว็บเซิร์ฟเวอร์อาจสามารถเข้าถึงไฟล์ใด ๆ ในโฮมไดเร็กตอรี่ของผู้ใช้ซึ่งอาจมีวิธีในการเพิ่มสิทธิ์ (อย่างน้อยมันจะขยายผลกระทบของช่องโหว่การเข้าถึงไฟล์ในเครื่อง) ตัวอย่างเช่นภายใต้ Solaris หรือ Linux ตรวจสอบให้แน่ใจว่าระบบไฟล์โฮมถูกเมาท์พร้อมกับaclตัวเลือกและรัน

setfacl -m user:www-data:x /home/*

(รวมสิ่งนั้นเข้ากับการตั้งค่าการสร้างบัญชีของคุณ) แล้วบอกผู้ใช้ของคุณว่าพวกเขา~/public_htmlไดเรกทอรีจะต้องสามารถอ่านได้โดยwww-dataผู้ใช้; พวกเขาสามารถเรียกใช้คำสั่งนี้:

setfacl -R -m default:user:www-data:rx ~/public_html
setfacl -R -m user:www-data:rx ~/public_html

ความเป็นไปได้อีกอย่างก็คือการติดตั้งpublic_htmlไดเรกทอรีผู้ใช้ทั้งหมดในที่แยกต่างหากบนระบบไฟล์ วิธีนี้มีข้อดีที่การอนุญาตในโฮมไดเร็กตอรี่จะไม่สำคัญ; มันยังช่วยให้เว็บเซิร์ฟเวอร์เรียกใช้ chroooted ภายใต้ Linux คุณสามารถทำสิ่งนี้กับโฮมไดเร็กตอรี่:

mount --bind /home/joe/public_html /srv/homepages/joe

ไดเรกทอรีและเนื้อหาของมันยังคงต้องมีการทำสามารถเข้าถึงได้public_htmlwww-data

ตัวแปรในเมธอด Linux bind mount ใช้ระบบไฟล์bindfs วิธีนี้ใช้ได้กับระบบปฏิบัติการใด ๆ ที่รองรับ bindfs (ซึ่งเป็น unices ส่วนใหญ่) และไม่จำเป็นต้องมีการตั้งค่า ACL ในราคาที่ไฟล์ใด ๆ ภายใต้public_htmlจะพร้อมใช้งานสำหรับการอ่านโดยเว็บเซิร์ฟเวอร์

bindfs -u www-data -p 500 /home/joe/public_html /srv/homepages/joe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.