web-dev-qa-db-fra.com

Liste des points d'interrogation uniquement dans le répertoire Linux

je fais une liste de dir dans mon dir .ssh home qui me donne un résultat étrange:

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

La chose étrange 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 dir dans une police clignotante rouge! Avez-vous des idées sur la cause de cela?

tHX!

Modifier:
Voici la liste des répertoires en tant que 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 je reçois toujours ceci:

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

Cela se produit lorsque l'utilisateur ne peut pas faire de stat () sur les fichiers (ce qui nécessite des autorisations 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 car ils ne peuvent pas être lus. :) Si vous avez un répertoire qui a une autorisation de lecture mais qui ne s'exécute pas, vous le verrez. 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. Plus que probablement, quelqu'un suivait les instructions pour sécuriser un .ssh fichier mais l'a appliqué à un répertoire .ssh. :)

Si vous effectuez 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 cela fonctionnera bien.

95
dannysauer