Jawaban:
Periksa izin ./directory
: jika Anda telah membaca izin tetapi tidak menjalankan izin pada direktori ini, maka Anda memiliki hak yang cukup untuk membaca daftar file di direktori itu, tetapi Anda tidak dapat benar-benar menggunakan file-file ini atau mendapatkan informasi tentang mereka.
contoh sesi:
$ cd /tmp/
$ mkdir /tmp/test
$ touch /tmp/test/file
$ ls -la test/
total 44
drwxr-xr-x 2 myself myself 4096 janv. 5 11:01 .
drwxrwxrwt 42 root root 54242 janv. 5 11:01 ..
-rw-r--r-- 1 myself myself 0 janv. 5 11:01 file
$ chmod a-x /tmp/test # remove execute permission for all
$ ls -la test/
total 0
d????????? ? ? ? ? ? .
d????????? ? ? ? ? ? ..
-????????? ? ? ? ? ? file
$ ls -ld test/
drw-r--r-- 2 myself myself 4096 Jan 5 11:01 test/
$ cat test/file
cat: test/file: Permission denied
$ chmod a+x /tmp/test # readd execute permission for all
$ ls -la test/
total 44
drwxr-xr-x 2 myself myself 4096 janv. 5 11:01 .
drwxrwxrwt 42 root root 54242 janv. 5 11:01 ..
-rw-r--r-- 1 myself myself 0 janv. 5 11:01 file
$ ls -ld test/
drwxr-xr-x 2 myself myself 4096 Jan 5 11:01 test/
$ cat test/file
$
Beberapa ls
versi menampilkan pesan kesalahan ketika mereka tidak dapat menampilkan informasi tentang file.
man readdir
untuk detail tingkat lebih rendah. Perhatikan bahwa perilaku ini tidak ditentukan oleh POSIX.
test
direktori atau tidak (periksa d char untuk '.' Dan '..')?