Não é possível fazer o cd no meu próprio diretório?

10

Em uma instância do EC2, mudei a localização do log do Apache para um diretório diferente do padrão. Isso é para que eu possa manter os logs em um EBS (não somente de inicialização, apenas dados).

No entanto, não posso cd no diretório de logs. Pertence ao meu usuário e tem permissões de leitura para todos. Eu não posso cat os logs (embora com o sudo funciona e eu posso ver que o Apache está logando muito bem).

$ 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

Isso não faz sentido para mim. Ajuda?

Edit: o sistema de arquivos é ext4.

    
por Felix 15.05.2011 / 17:05

2 respostas

13

Você precisa do bit de execução definido nos diretórios, se quiser ser capaz de mudar para isso. (O tipo de sistema de arquivos não importa realmente.)

chmod u+x ./apache
    
por 15.05.2011 / 17:26
7

link diz

TABELA 1. Permissões do DIRETÓRIO DO UNIX

WHO                     WHAT THE PERMISSIONS ALLOW
USER   Read (r)         The account owner can list the files in the directory.
       Write (w)        The account owner can create or delete files in the 
                        directory.
       Execute (x)      access files in that directory by name (such as Web 
                        page files).

GROUP  Read (r)         Everyone in the designated group can list the files in 
                        the directory.
       Write (w)        Everyone in the group can create or delete files in the 
                        directory.
       Execute (x)      Everyone in the group can change (cd) into the 
                        directory and access files in that directory by name 
                        (such as Web page files).

OTHER  Read (r)         Anyone can list the files in the directory.
       Write (w)        Anyone can create or delete files in the directory.
       Execute (x)      Anyone can change (cd) into the directory and access 
                        files in that directory by name 
                        (such as Web page files).

O artigo da Wikipedia vale a pena ser lido e diz

The effect of setting the permissions on a directory (rather than a file) is "one of the most frequently misunderstood file permission issues" (Hatch 2003).

    
por 15.05.2011 / 17:42