x bit สำหรับไดเรกทอรีเรียกอีกอย่างว่า bit การค้นหา ที่จริงแล้วมันช่วยให้คุณสามารถเข้าถึง inodes ของไฟล์ที่อยู่ในโฟลเดอร์ ดังนั้นหากคุณต้องการเข้าถึง /home/user/foo/bar.txt คุณต้องมีการเข้าถึงการค้นหาในทุกบรรพบุรุษของ bar.txt
การอ้างอิงจากหน้า
เนื่องจากไดเรกทอรีไม่ได้ใช้ในลักษณะเดียวกับไฟล์ปกติการอนุญาตใช้งานจึงแตกต่างกันเล็กน้อย (แต่เพียงเล็กน้อยเท่านั้น) ความพยายามในการแสดงรายการไฟล์ในไดเรกทอรีต้องได้รับอนุญาตการอ่านสำหรับไดเรกทอรี แต่ไม่ได้อยู่ในไฟล์ภายใน ความพยายามที่จะเพิ่มไฟล์ไปยังไดเรกทอรีลบไฟล์จากไดเรกทอรีหรือเปลี่ยนชื่อไฟล์ทั้งหมดต้องได้รับอนุญาตการเขียนสำหรับไดเรกทอรี แต่ (อาจแปลกใจ) ไม่ใช่สำหรับไฟล์ภายใน สิทธิ์ดำเนินการใช้ไม่ได้กับไดเรกทอรี (ไดเรกทอรีไม่สามารถเป็นโปรแกรมได้) แต่บิตสิทธิ์นั้นจะถูกนำมาใช้ซ้ำสำหรับไดเรกทอรีเพื่อวัตถุประสงค์อื่น
จำเป็นต้องใช้สิทธิ์ดำเนินการในไดเรกทอรีเพื่อให้สามารถเข้าไปในซีดีได้ (นั่นคือเพื่อทำให้ไดเรกทอรีบางส่วนเป็นไดเรกทอรีทำงานปัจจุบันของคุณ)
จำเป็นต้องเรียกใช้งานบนไดเร็กทอรีเพื่อเข้าถึงข้อมูล inode ของไฟล์ภายใน คุณต้องการสิ่งนี้เพื่อค้นหาไดเรกทอรีเพื่ออ่าน inodes ของไฟล์ภายใน ด้วยเหตุนี้สิทธิ์ดำเนินการในไดเรกทอรีจึงมักเรียกว่าสิทธิ์ในการค้นหาแทน
ต้องมีสิทธิ์การค้นหาในสถานการณ์ทั่วไปหลายอย่าง พิจารณาคำสั่ง cat / home / user / foo คำสั่งนี้ต้องมีสิทธิ์อ่านอย่างชัดเจนสำหรับไฟล์ foo แต่ถ้าคุณไม่ได้รับอนุญาตให้ค้นหาใน /, / home, และ / home / user directory แมวไม่สามารถหา inode of foo และไม่สามารถอ่านได้! คุณต้องได้รับอนุญาตในการค้นหาในทุกไดเรกทอรีบรรพบุรุษเพื่อเข้าถึง inode ของไฟล์ใด ๆ (หรือไดเรกทอรี) และคุณไม่สามารถอ่านไฟล์ได้จนกว่าคุณจะได้รับ inode
โปรดอ่านเพิ่มเติมที่ส่วนไดเรกทอรีสิทธิ์ไฟล์
อัปเดต:เลโอตั้งคำถามที่ดีมาก ถ้าเรารู้ว่าไอโหนดเราจะสามารถเข้าถึงไฟล์จากไดเรกทอรีที่มี x บิตได้หรือไม่? ฉันเชื่อว่าเราไม่ควรทำเช่นนั้น ฉันไม่ได้ทดสอบด้วยโปรแกรม c แต่ใช้คำสั่ง bash ที่มีประโยชน์บางคำสั่งเพื่อยืนยัน
user@user-desktop:~/test$ ls -lart
total 12
drwxr-xr-x 49 user user 4096 2011-11-30 22:37 ..
drwxr-xr-x 3 user user 4096 2011-11-30 22:37 .
drwxr-xr-x 2 user user 4096 2011-11-30 22:38 level1
user@user-desktop:~/test$ ls -lart level1/
total 12
drwxr-xr-x 3 user user 4096 2011-11-30 22:37 ..
drwxr-xr-x 2 user user 4096 2011-11-30 22:38 .
-rw-r--r-- 1 user user 8 2011-11-30 22:38 file1
user@user-desktop:~/test$ stat level1
File: `level1'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 808h/2056d Inode: 95494 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2011-11-30 22:46:16.576702105 +0530
Modify: 2011-11-30 22:38:12.386701913 +0530
Change: 2011-11-30 22:46:08.876702102 +0530
user@user-desktop:~/test$ stat level1/file1
File: `level1/file1'
Size: 8 Blocks: 8 IO Block: 4096 regular file
Device: 808h/2056d Inode: 60775 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2011-11-30 22:38:19.846701917 +0530
Modify: 2011-11-30 22:38:16.366701915 +0530
Change: 2011-11-30 22:38:16.366701915 +0530
user@user-desktop:~/test$ chmod -x level1
user@user-desktop:~/test$ stat level1/file1
stat: cannot stat `level1/file1': Permission denied
user@user-desktop:~/test$ ls -lart level1/
ls: cannot access level1/..: Permission denied
ls: cannot access level1/.: Permission denied
ls: cannot access level1/file1: Permission denied
total 0
-????????? ? ? ? ? ? file1
d????????? ? ? ? ? ? ..
d????????? ? ? ? ? ? .
user@user-desktop:~/test$ cat level1/file1
cat: level1/file1: Permission denied
user@user-desktop:~/test$ find . -inum 95494
./level1
user@user-desktop:~/test$ find . -inum 60775
user@user-desktop:~/test$ find ./level -inum 60775
find: `./level': No such file or directory
user@user-desktop:~/test$ find ./level1 -inum 60775