x bit untuk direktori juga disebut sebagai bit pencarian. Sebenarnya, ini memungkinkan Anda untuk mengakses file-file yang terdaftar di dalam folder. Jadi, jika Anda ingin mengakses /home/user/foo/bar.txt maka Anda harus memiliki akses pencarian pada setiap leluhur bar.txt
Mengutip dari halaman
Karena direktori tidak digunakan dengan cara yang sama seperti file biasa, izin bekerja sedikit (tetapi hanya sedikit) berbeda. Upaya daftar file dalam direktori memerlukan izin baca untuk direktori, tetapi tidak pada file dalam. Upaya untuk menambahkan file ke direktori, menghapus file dari direktori, atau mengubah nama file, semua memerlukan izin tulis untuk direktori, tetapi (mungkin mengejutkan) bukan untuk file di dalamnya. Jalankan izin tidak berlaku untuk direktori (direktori juga tidak bisa menjadi program). Tetapi bit izin itu digunakan kembali untuk direktori untuk tujuan lain.
Jalankan izin diperlukan pada direktori untuk dapat cd ke dalamnya (yaitu, untuk membuat beberapa direktori direktori kerja Anda saat ini).
Jalankan diperlukan pada direktori untuk mengakses informasi inode dari file-file di dalamnya. Anda memerlukan ini untuk mencari direktori untuk membaca inode file di dalamnya. Untuk alasan ini izin eksekusi pada direktori sering disebut izin pencarian.
Izin pencarian diperlukan dalam banyak situasi umum. Pertimbangkan perintah cat / home / user / foo. Perintah ini jelas memerlukan izin baca untuk file foo. Tetapi kecuali Anda memiliki izin pencarian pada direktori /, / home, dan / home / user, cat tidak dapat menemukan inode foo dan karenanya tidak dapat membacanya! Anda memerlukan izin pencarian di setiap direktori leluhur untuk mengakses inode file apa pun (atau direktori), dan Anda tidak dapat membaca file kecuali Anda bisa masuk ke inode-nya.
Silakan baca lebih lanjut di bagian direktori izin file.
Pembaruan: Leo mengajukan pertanyaan yang sangat bagus. Jika kita mengetahui inode maka dapatkah kita mengakses file dari direktori yang memiliki x bit tidak disetel? Saya percaya, kita seharusnya tidak dapat melakukannya. Saya tidak mengujinya dengan program c melainkan menggunakan beberapa perintah bash yang berguna untuk mengkonfirmasinya.
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