Impossible de cd dans mon propre répertoire?

10

Sur une instance EC2, j'ai changé l'emplacement du journal d'Apache dans un répertoire différent de celui par défaut. C'est pour que je puisse conserver les journaux sur un EBS (non-boot, uniquement des données).

Cependant, je ne peux pas cdaccéder au répertoire des journaux. Il appartient à mon utilisateur et dispose d'autorisations de lecture pour tout le monde. Je ne peux pas non plus catles journaux (bien qu'avec sudo cela fonctionne et je peux voir que Apache se connecte très bien).

$ 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

Cela n'a aucun sens pour moi. Aidez-moi?

Edit: le système de fichiers est ext4.

Felix
la source

Réponses:

13

Vous avez besoin du bit d'exécution défini sur les répertoires si vous voulez pouvoir passer à cela. (Le type de système de fichiers n'a pas vraiment d'importance.)

chmod u+x ./apache
Tapis
la source
7

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

TABLEAU 1. Autorisations UNIX DIRECTORY

QUI PERMETTENT LES AUTORISATIONS
USER Read (r) Le propriétaire du compte peut répertorier les fichiers dans le répertoire.
       Écriture (w) Le propriétaire du compte peut créer ou supprimer des fichiers 
                        annuaire.
       Exécuter (x) les fichiers d'accès dans ce répertoire par leur nom (tels que Web 
                        fichiers de page).

GROUPE Lecture (r) Tout le monde dans le groupe désigné peut lister les fichiers dans 
                        le répertoire.
       Écriture (w) Tout le monde dans le groupe peut créer ou supprimer des fichiers 
                        annuaire.
       Exécuter (x) Tout le monde dans le groupe peut changer (cd) en 
                        répertoire et accéder aux fichiers dans ce répertoire par nom 
                        (tels que les fichiers de page Web).

AUTRE Lecture (r) N'importe qui peut lister les fichiers dans le répertoire.
       Écrire (w) N'importe qui peut créer ou supprimer des fichiers dans le répertoire.
       Exécuter (x) N'importe qui peut changer (cd) dans le répertoire et accéder 
                        fichiers dans ce répertoire par nom 
                        (tels que les fichiers de page Web).

L' article de Wikipedia mérite d'être lu et dit

L'effet de la définition des autorisations sur un répertoire (plutôt que sur un fichier) est «l'un des problèmes d'autorisations de fichiers les plus souvent mal compris» (Hatch 2003).

RedGrittyBrick
la source
Vous devez donc avoir les executeautorisations de cd dans un répertoire? @RedGrittyBrick
AJP
Oui, vous avez besoin d'une autorisation d'exécution sur un répertoire pour le «traverser», c'est-à-dire pour faire quoi que ce soit avec son contenu. Si vous ne disposez pas de l'autorisation d'exécution, vous pouvez toujours voir le répertoire, et vous le pouvez stat, mais vous ne pouvez pas lsou accéder à son contenu.
Blacklight Shining