53 votes

Seulement des points d'interrogation dans le dirlisting de Linux

Je fais une liste de répertoires dans mon répertoire personnel .ssh qui me donne un résultat étrange :

ls -lsa .ssh/
total 0
? ?--------- ? ? ? ?            ? . ·
? ?--------- ? ? ? ?            ? .. ·
? ?--------- ? ? ? ?            ? authorized_keys ·

Ce qui est bizarre, c'est que cela ne se produit que pour un seul utilisateur et uniquement dans ce répertoire spécifique. Si je fais le ls après un su -l, tout fonctionne comme prévu. Une autre chose étrange est que mon xterm affiche la liste des répertoires dans une police rouge clignotante ! Avez-vous une idée de la cause de ce phénomène ?

Merci !

Edit :
Voici le listing des dir comme Root :

ls -lsa
total 52
4 drw-------  2 sdd sdd 4096 Feb 10 15:57 .
4 drwx------ 16 sdd sdd 4096 Feb 10 15:57 ..
4 -rw-------  1 sdd sdd 1628 Feb 10 15:57 authorized_keys

J'utilise ext3.

Edit2 :
Merci pour les réponses, mais j'ai toujours ce problème :

chmod -R 600 /home/sdd/.ssh
ls -lsan _ssh.old/
total 0
? ?--------- ? ? ? ?            ? .
? ?--------- ? ? ? ?            ? ..
? ?--------- ? ? ? ?            ? authorized_keys

96voto

dannysauer Points 1962

Cela se produit lorsque l'utilisateur ne peut pas faire un stat() sur les fichiers (ce qui nécessite des droits d'exécution), mais peut lire les entrées du répertoire (ce qui nécessite un accès en lecture sur le répertoire). Vous obtenez donc une liste de fichiers dans le répertoire, mais vous ne pouvez pas obtenir d'informations sur les fichiers parce qu'ils ne peuvent pas être lus. :) Si vous avez un répertoire qui a le droit de lecture mais pas d'exécution, vous verrez ceci. Quelqu'un a probablement essayé de protéger le répertoire .ssh de manière incorrecte - il devrait être "chmod 0700 .ssh/" et appartenir à l'utilisateur qui possède le homedir. Il est plus probable que quelqu'un ait suivi les instructions pour sécuriser un répertoire .ssh/. fichier mais l'a appliqué à un répertoire .ssh. :)

Si vous faites un chmod 0600 ou 0400 sur n'importe quel répertoire, vous pouvez facilement reproduire ce comportement. Ajoutez l'autorisation d'exécution au répertoire, et tout fonctionnera correctement.

1voto

claf Points 3425

Pas de quoi s'inquiéter, je pense que vous venez d'utiliser chmod sans argument valable.

Il suffit de re-chmoder avec le bon répertoire (récursivement si nécessaire) et tout ira bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X