ทำไม Squid เปิดไฟล์บันทึกไม่ได้
ตรวจทุกส่วนของพาธ แล้วแยกสิทธิ์เดินผ่านไดเรกทอรี เขียนต่อไฟล์เดิม และสร้างไฟล์ใหม่ ก่อนขยายสิทธิ์เข้าถึง
access_log stdio:/srv/squid-logs/access.log logformat=squidสำหรับตัวอย่างตัวบันทึกแบบ stdio ของ Squid 6 ข้างต้น ให้ตรวจพาธโดยไม่แก้ไขข้อมูล:
namei -l /srv/squid-logs/access.log| การทำงาน | สิทธิ์ที่ต้องใช้ |
|---|---|
| เดินผ่านพาธของไดเรกทอรีแม่ | สิทธิ์ค้นหา/รันในทุกไดเรกทอรี |
| เขียนต่อบันทึกที่มีอยู่ | สิทธิ์เดินผ่านพาธและสิทธิ์เขียนไฟล์ |
| สร้างบันทึกที่ยังไม่มี | ต้องมีสิทธิ์เขียนในไดเรกทอรีแม่ที่อยู่ติดกันด้วย |
เทียบบิตสิทธิ์และ ACL กับตัวตนของโพรเซสที่เขียนจริง stdio เขียนผ่าน Squid ส่วนการบันทึกแบบ daemon ใช้โพรเซสช่วย การเปลี่ยนชื่อหรือแทนที่ไฟล์ระหว่างหมุนเวียนบันทึกอาจต้องมีสิทธิ์ไดเรกทอรีอื่นเพิ่มเติม
แก้ส่วนที่ทำให้ถูกปฏิเสธ ไม่จำเป็นต้องมีสิทธิ์เขียนในไดเรกทอรีระดับบนทุกแห่งเพียงเพื่อเดินผ่าน หากสิทธิ์ทั่วไปเพียงพอแล้ว ให้ตรวจการปฏิเสธจากนโยบายความปลอดภัยของบริการ แทนการขยายสิทธิ์แบบเรียกซ้ำทั่วต้นไม้ติดตั้งหรือแคช