Pengguna saya, bob, tidak dapat mengakses file yang ia (secara teoritis miliki). Saya menjalankan Fedora Core 8. Mungkin lebih mudah ditampilkan daripada memberi tahu:
> ls -al .
total 32
drwxrwxr-x 7 bob bob 4096 May 18 14:33 .
drwxrwxr-x 4 bob bob 4096 May 12 15:44 ..
drwxr-xr-x 2 bob bob 4096 June 1 14:22 log
> cd ./log
-bash: cd: log/: Permission denied
> ls -al ./log
ls: cannot access log/..: Permission denied
ls: cannot access log/the.log: Permission denied
ls: cannot access log/.: Permission denied
total 0
d????????? ? ? ? ? ? .
d????????? ? ? ? ? ? ..
-????????? ? ? ? ? ? the.log
> sudo ls -al ./log
drw-rw-r-- 3 bob bob 4096 Jun 2 04:11 .
drwxrwxr-x 7 bob bob 4096 May 18 14:33 ..
-rw-rw-r-- 1 bob bob 0 Jun 1 04:12 the.log
Yang ls -al
menonjol sangat aneh. Itu akan menampilkan file yang saya tidak punya izin untuk melihatnya, tetapi tidak menunjukkan saya izin?
Jadi pertanyaannya adalah, apa yang menyebabkan ini? Dan apa yang bisa saya lakukan untuk memperbaikinya?
sumber
Saya telah melihat hal-hal seperti itu ketika filesystem rusak, atau jika Anda memiliki drive yang gagal. Cara mengatasinya biasanya adalah menjalankan fsck terhadap sistem file dan membiarkannya memperbaiki kesalahan yang telah ditemukan.
sumber
Juga, periksa pengaturan SE / Linux. Terkadang izin pada file tidak ada hubungannya dengan apakah Anda dapat mengaksesnya atau tidak.
sumber
File-file itu mungkin memiliki atribut yang diperluas yang tidak berubah atau hanya ditambahkan yang ditetapkan. Saya sudah pernah mengalami ini sebelumnya dan bahkan root tidak bisa menghapus file.
Atribut yang diperluas dapat dilihat melalui "lsattr" dan diubah melalui "chattr"
sumber
Saya tidak yakin mengapa tetapi "." entri ./log/ tidak memiliki izin eksekusi. Izin harus identik dengan yang untuk ./log.
Bisakah Anda mencoba chmod 755 ./log dan chmod 755 ./log/. dan lihat apakah salah satu perintah memperbaiki akses?
Selain itu saya akan menyarankan Anda menjalankan fsck pada sistem file karena sepertinya tidak sinkron.
sumber
Sudahkah Anda mencoba mengubah kepemilikan direktori ke orang lain, lalu kembali ke Bob? Saran Zoredache lebih baik, tapi - fsck saja!
sumber
Jawaban IMO yang lebih ringkas.
Direktori Anda tidak memiliki izin yang dapat dieksekusi, yang diharuskan oleh cd .
Memperbaiki:
Secara rekursif:
+ x menambahkan atribut yang dapat dieksekusi. Anda selalu dapat menghapus atribut dengan melakukan -x
sumber