สิทธิ์การค้นหาในทุกไดเรกทอรีก่อนกุญแจ
กุญแจอาจเป็น 0600 และยังเปิดไม่ได้เมื่อไดเรกทอรีหลักขวางการเข้าถึงเส้นทาง ตรวจสอบเส้นทางทั้งหมดในฐานะบัญชีบริการก่อนเปลี่ยนโหมดใด ๆ
โหมด 0600 และเจ้าของที่ถูกต้องไม่ได้ยืนยันว่าบริการจะเปิดกุญแจได้ สิทธิ์ที่ขาดมักอยู่บนไดเรกทอรีเหนือขึ้นไป Linux แก้เส้นทางทีละองค์ประกอบ และแต่ละขั้นต้องมีสิทธิ์ค้นหาก่อนจะลองขั้นถัดไป อ่านเส้นทางทั้งหมด ไม่ใช่บรรทัดสุดท้ายของรายการ
สิทธิ์อ่านเป็นขั้นสุดท้าย ไม่ใช่ขั้นเดียว
การเปิดไฟล์ต้องให้เคอร์เนลเดินจากรากหรือไดเรกทอรีทำงานผ่านทุกองค์ประกอบของเส้นทาง ไดเรกทอรีที่ไม่มีสิทธิ์ค้นหาจะหยุดการเดินนั้นด้วยข้อผิดพลาดสิทธิ์ โหมดของไฟล์เองไม่เคยถูกตรวจสอบ กุญแจที่อ่านได้สมบูรณ์จึงดูเหมือนอ่านไม่ได้ ข้อผิดพลาดมักมาถึงตอนเปิดโดยไม่ระบุชื่อไดเรกทอรี จึงมักโทษไฟล์สุดท้าย
สำหรับไดเรกทอรี บิตเรียกใช้หมายถึงการค้นหา ไม่ใช่การเรียกใช้เนื้อหา กุญแจยังคงเป็นข้อมูล และไม่มีส่วนใดของการซ่อมแซมนี้ต้องทำเครื่องหมายให้เรียกใช้ได้
เดินเส้นทางในฐานะบัญชีบริการ
แสดงรายการแต่ละองค์ประกอบพร้อมเจ้าของและโหมด แล้วทำการอ่านซ้ำในฐานะตัวตนจริงของบริการ ความแตกต่างระหว่างเชลล์ของคุณกับเดมอนมักเป็นคำตอบทั้งหมด ติดตามลิงก์สัญลักษณ์ไปยังเป้าหมายจริง เพราะเส้นทางที่แก้แล้วคือสิ่งที่ถูกตรวจสอบ
namei -l /etc/openvpn/client/office.key
sudo -u vpn-reader stat -c '%A %U:%G %n' /etc/openvpn/client/office.key
บริการอาจเปิดไฟล์ในมากกว่าหนึ่งช่วง เนื้อหาบางส่วนอ่านระหว่างการตั้งค่าที่มีสิทธิพิเศษ ขณะที่ไฟล์อื่นเปิดหลังจากลดสิทธิ์แล้ว เชลล์รูทที่อ่านไฟล์ไม่ได้จำลองการเข้าถึงของผู้ทำงานภายหลัง เนมสเปซการเมานต์อาจแสดงมุมมองอื่นของเส้นทางเดียวกัน โดยเฉพาะในคอนเทนเนอร์ จึงเปรียบเทียบมุมมองระบบไฟล์ของเดมอนกับของคุณ
เปลี่ยนสิทธิ์ที่แคบที่สุดที่พอดี
เลือกวิธีการที่เล็กที่สุดที่ให้โปรเซสเข้าถึงได้: กลุ่มที่ควบคุมพร้อมสิทธิ์ค้นหาบนไดเรกทอรีที่จำเป็น ตำแหน่งที่จัดการซึ่งบริการเป็นเจ้าของอยู่แล้ว หรือกลไกอื่นที่บันทึกไว้ การอ่านไฟล์ไม่ต้องมีสิทธิ์เขียนบนไดเรกทอรีของมัน สิทธิ์เขียนกลุ่มแบบกว้างบนการกำหนดค่าที่มีสิทธิพิเศษไม่ใช่การซ่อมการเข้าถึงตามปกติ 0777 แบบเรียกซ้ำก็ไม่ใช่ทางแก้
บันทึกว่าคุณเปลี่ยนองค์ประกอบใดและเพราะอะไร การเปลี่ยนสิทธิ์โดยไม่มีเหตุผลที่บันทึกไว้ตรวจสอบยากและลืมง่าย
มองข้ามโหมดเท่านั้นหลังจากเดินครบ
หากบิตโหมดดูเพียงพอ การตรวจที่เหลือคือ ACL นโยบายความปลอดภัย และข้อจำกัดแซนด์บ็อกซ์ ACL อาจให้สิทธิ์ที่บิตโหมดบอกว่าไม่มี หรือปฏิเสธสิทธิ์ที่ดูเหมือนอนุญาต การตั้งค่าเหล่านั้นเป็นของการกำหนดค่าเจ้าของเดิม และควรปรับอย่างแคบแทนที่จะปิด การต่างกันของรากหรือไดเรกทอรีทำงานยังอธิบายเส้นทางสัมบูรณ์ที่ใช้ได้ในบริบทหนึ่งและล้มเหลวในอีกบริบทได้
อย่าลืมว่าไฟล์คืออะไรขณะซ่อมการเข้าถึง ใบรับรอง CA เป็นสาธารณะโดยการออกแบบ กุญแจส่วนตัวไม่ใช่ ไฟล์ที่ไคลเอนต์เขียนใหม่ก็ต้องการสิทธิ์เขียนต่างจากกุญแจระบุตัวตนแบบอ่านอย่างเดียว ตรวจสอบเมทาดาทาโดยไม่พิมพ์ความลับ แล้วยืนยันว่าบริการเองทำงานได้หลังการเปลี่ยนแปลง บันทึกสั้น ๆ ในเอกสารบริการช่วยให้คนถัดไปไม่ต้องเดินซ้ำ