Nie mogę cd do mojego katalogu?

10

W instancji EC2 zmieniłem lokalizację dziennika Apache na inny katalog niż domyślny. Jest tak, że mogę przechowywać dzienniki na EBS (bez rozruchu, tylko dane).

Nie mogę jednak cdwejść do katalogu logów. Należy do mojego użytkownika i ma uprawnienia do odczytu dla wszystkich. Nie mogę też catrejestrować dzienników (chociaż z sudo działa i widzę, że Apache rejestruje się dobrze).

$ 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

To nie ma dla mnie żadnego sensu. Wsparcie?

Edycja: system plików to ext4.

Felix
źródło

Odpowiedzi:

13

Potrzebujesz bitu wykonania dla katalogów, jeśli chcesz mieć możliwość przełączenia się na to. (Typ systemu plików tak naprawdę nie ma znaczenia.)

chmod u+x ./apache
Mata
źródło
7

http://www.albany.edu/faculty/gms/homepage101/unix_permissions.html mówi

TABELA 1. KATALOG UNIX Uprawnienia

KTO CO ZEZWALAJĄ NA UPRAWNIENIA
USER Czytaj (r) Właściciel konta może wyświetlić listę plików w katalogu.
       Napisz (w) Właściciel konta może tworzyć lub usuwać pliki w 
                        informator.
       Wykonaj (x) dostęp do plików w tym katalogu według nazwy (np. WWW 
                        pliki stron).

GROUP Read (r) Wszyscy w wyznaczonej grupie mogą wyświetlać pliki 
                        katalog.
       Napisz (w) Każdy w grupie może tworzyć lub usuwać pliki w 
                        informator.
       Wykonaj (x) Wszyscy w grupie mogą zmienić (cd) na 
                        katalog i dostęp do plików w tym katalogu według nazwy 
                        (takie jak pliki stron internetowych).

INNE Czytaj (r) Każdy może wyświetlić listę plików w katalogu.
       Napisz (w) Każdy może tworzyć lub usuwać pliki w katalogu.
       Wykonaj (x) Każdy może zmienić (cd) na katalog i uzyskać dostęp 
                        pliki w tym katalogu według nazwy 
                        (takie jak pliki stron internetowych).

Artykuł w Wikipedii jest wart przeczytania i mówi

Efekt ustawienia uprawnień do katalogu (a nie pliku) jest „jednym z najczęściej źle rozumianych problemów z uprawnieniami do plików” (Hatch 2003).

RedGrittyBrick
źródło
Więc musisz mieć executeuprawnienia do cd do katalogu? @RedGrittyBrick
AJP
Tak, musisz wykonać uprawnienie do katalogu, aby go „przemieścić” - to znaczy zrobić wszystko z jego zawartością. Jeśli nie masz uprawnień do wykonywania, nadal możesz zobaczyć katalog i możesz to statzrobić, ale nie możesz lsgo uzyskać ani w ogóle uzyskać dostępu do jego zawartości.
Blacklight Shining