สิทธิ์ลำดับขั้นของไดเรกทอรี Unix


2

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

คำตอบ:


5

Wiile คำตอบส่วนใหญ่ "ใช่" มีกรณีพิเศษที่สามารถเป็นได้ "ไม่" .

เนื่องจากไฟล์ unix ไม่รับประกันว่าจะมีเส้นทางที่ไม่ซ้ำกัน ดังนั้นหากคุณมี

$ ls -l
drwx------- 1 root  root [...] root_only

และ

$ ls -l root_only
-rw-rw-rw-- 2 root  root [...] hopefully_private_file

และ hopefully_private_file ถูก hardlinked จากที่อื่น อาจ สามารถอ่านได้ในระดับสากล

คุณรู้ได้อย่างไร? ดูอีกครั้งที่ ls -l:

$ ls -l root_only
-rw-rw-rw-- 2 root  root [...] hopefully_private_file
            ^
            |

จำนวนที่อยู่เหนือลูกศรคือจำนวนลิงค์ (สำหรับไฟล์มันมีความหมายต่างกันสำหรับไดเรกทอรี) หากจำนวนลิงค์คือ 1 คุณจะปลอดภัย หากเป็นอย่างอื่นอาจมีปัญหา


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

@ อดัมนั่น จริงๆ ขึ้นอยู่กับสิ่งที่ Echostar พยายามทำที่นี่ แต่ผู้คนจำเป็นต้องตระหนักถึงสิ่งนี้หากพวกเขาต้องเข้าใจในสิ่งที่ไม่สามารถคิดได้เกี่ยวกับการเข้าถึงไฟล์บนระบบยูนิกซ์ แน่นอน, chmod 600 hopefully_private_file แก้ปัญหา
dmckee

2

เพื่อแสดงบางสิ่งบางอย่างในไดเรกทอรี dir/ คุณต้องการ +x การอนุญาตให้สามารถค้นหา inode ของไฟล์ ดังนั้นหากคุณไม่มี + x คุณจะไม่สามารถอ่านไฟล์ได้แม้ว่าจะเป็น 777.


การเชื่อมโยงไปยังไฟล์อาจทำให้การรับประกันนี้เสียหาย ดูคำตอบของฉัน
dmckee

1

ถูกต้องแล้วการลบการอนุญาตในไดเรกทอรีหลักจะส่งผลต่อความสามารถในการทำงานกับสิ่งต่างๆภายในไดเรกทอรีนั้น

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

คุณอาจต้องการลบสิทธิ์การอ่านในไดเรกทอรีเพื่อที่พวกเขาจะไม่สามารถแม้แต่จะเห็นเนื้อหา (ชื่อไฟล์) ของไดเรกทอรี


นอกเสียจากว่าไฟล์บางไฟล์จะถูก hardlinked จากเส้นทางของผู้ใช้ สามารถ อ่าน. ดูคำตอบของฉัน
dmckee
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.