Non riesci a inserire il cd nella mia directory?


10

In un'istanza EC2 ho modificato la posizione del registro di Apache in una directory diversa da quella predefinita. Questo è così che posso tenere i registri su un EBS (non di avvio, solo dati).

Tuttavia, non riesco a cdentrare nella directory dei registri. Appartiene al mio utente e ha i permessi di lettura per tutti. Non posso cati log sia (anche se con sudo funziona e posso vedere che Apache sta registrando più che bene).

$ 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

Questo non ha alcun senso per me. Aiuto?

Modifica: il filesystem è ext4.

Risposte:


13

È necessario il bit di esecuzione impostato nelle directory se si desidera poter passare a quello. (Il tipo di filesystem non ha molta importanza.)

chmod u+x ./apache

7

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

TABELLA 1. Autorizzazioni UNIX DIRECTORY

CHI COSA CONSENTONO LE AUTORIZZAZIONI
USER Leggi (r) Il proprietario dell'account può elencare i file nella directory.
       Scrivi (w) Il proprietario dell'account può creare o eliminare file in 
                        directory.
       Esegui (x) i file di accesso in quella directory per nome (come Web 
                        file di paging).

GROUP Leggi (r) Tutti gli utenti del gruppo designato possono elencare i file in 
                        la directory.
       Scrivi (w) Tutti gli utenti del gruppo possono creare o eliminare file nel file 
                        directory.
       Esegui (x) Tutti nel gruppo possono cambiare (cd) in 
                        directory e accedere ai file in quella directory per nome 
                        (come file di pagine Web).

ALTRO Leggi (r) Chiunque può elencare i file nella directory.
       Scrivi (w) Chiunque può creare o eliminare file nella directory.
       Esegui (x) Chiunque può cambiare (cd) nella directory e accedere 
                        file in quella directory per nome 
                        (come file di pagine Web).

L' articolo di Wikipedia vale la pena leggere e dice

L'effetto dell'impostazione delle autorizzazioni su una directory (anziché su un file) è "uno dei problemi di autorizzazione dei file fraintesi più frequentemente" (Hatch 2003).


Quindi devi avere le executeautorizzazioni per cd in una directory? @RedGrittyBrick
AJP

Sì, è necessario eseguire l'autorizzazione su una directory per "attraversarla", ovvero per fare qualsiasi cosa con il suo contenuto. Se non si dispone dell'autorizzazione di esecuzione, è comunque possibile visualizzare la directory, ma è possibile stat, ma non lsè possibile o non accede affatto al suo contenuto.
Blacklight Shining,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.