Tidak dapat melakukan cd ke direktori saya sendiri?

10

Pada contoh EC2 saya telah mengubah lokasi log Apache ke direktori yang berbeda dari yang standar. Ini agar saya dapat menyimpan log pada EBS (non-boot, hanya data).

Namun, saya tidak bisa cdmasuk ke direktori log. Itu milik pengguna saya dan telah membaca izin untuk semua orang. Saya tidak bisa catlog juga (meskipun dengan sudo berfungsi dan saya dapat melihat bahwa Apache login dengan baik).

$ ls -lh
total 4.0K
drw-rw-rw- 2 ubuntu ubuntu 4.0K 2011-05-15 14:52 apache
$ ls -lh apache/
ls: cannot access apache/error.log: Permission denied
ls: cannot access apache/access.log: Permission denied
total 0
-????????? ? ? ? ?                ? access.log
-????????? ? ? ? ?                ? error.log
$ cd apache
-bash: cd: apache: Permission denied
$ sudo ls -lh apache/
total 2.4M
-rw-r--r-- 1 ubuntu ubuntu 2.4M 2011-05-15 15:04 access.log
-rw-r--r-- 1 ubuntu ubuntu  27K 2011-05-15 15:00 error.log

Ini tidak masuk akal bagi saya. Tolong?

Sunting: filesystem ext4.

Felix
sumber

Jawaban:

13

Anda memerlukan bit eksekusi yang diatur pada direktori jika Anda ingin dapat beralih ke itu. (Jenis sistem file tidak terlalu penting.)

chmod u+x ./apache
Tikar
sumber
7

http://www.albany.edu/faculty/gms/homepage101/unix_permissions.html mengatakan

TABEL 1. Izin UNIX DIREKTORI

SIAPA YANG DIIZINKAN OLEH PERIZINAN
USER Read (r) Pemilik akun dapat membuat daftar file dalam direktori.
       Tulis (w) Pemilik akun dapat membuat atau menghapus file di 
                        direktori.
       Jalankan (x) akses file dalam direktori tersebut dengan nama (seperti Web 
                        file halaman).

Baca GROUP (r) Setiap orang di grup yang ditunjuk dapat mencantumkan file di 
                        direktori.
       Tulis (w) Setiap orang dalam grup dapat membuat atau menghapus file di 
                        direktori.
       Jalankan (x) Setiap orang dalam grup dapat mengubah (cd) menjadi 
                        direktori dan akses file dalam direktori tersebut dengan nama 
                        (seperti file halaman Web).

LAINNYA Baca (r) Siapa pun dapat membuat daftar file dalam direktori.
       Tulis (w) Siapa pun dapat membuat atau menghapus file di direktori.
       Jalankan (x) Siapa pun dapat mengubah (cd) ke direktori dan akses 
                        file dalam direktori tersebut dengan nama 
                        (seperti file halaman Web).

The Artikel Wikipedia bernilai membaca dan mengatakan

Efek pengaturan izin pada direktori (bukan file) adalah "salah satu masalah izin file yang paling sering disalahpahami" (Hatch 2003).

RedGrittyBrick
sumber
Jadi Anda harus memiliki executeizin untuk masuk ke direktori? @RedGrittyBrick
AJP
Ya, Anda perlu menjalankan izin pada direktori untuk "melintasi" -yaitu, untuk melakukan apa pun dengan kontennya. Jika Anda tidak memiliki izin untuk menjalankan, Anda masih dapat melihat direktori, dan Anda dapat statmelakukannya, tetapi Anda tidak dapat lsatau mengakses isinya sama sekali.
Blacklight Shining