Подтвердить что ты не робот

Только вопросительные знаки в Linux dirlisting

Я делаю каталог в моем домашнем каталоге .ssh, который дает мне странный результат:

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

Странно, что это происходит только для одного пользователя и только в этом конкретном каталоге. Если я сделаю ls после su -l, все будет работать так, как ожидалось. Еще одна странная вещь: мой xterm показывает каталог в красном мигающем шрифте! Любые идеи, что может привести к этому?

ТНХ!

Edit:
Ниже перечислены данные из каталога 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

Я использую ext3.

Edit2:
спасибо для ответов, но я все еще получаю следующее:

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

Ответ 1

Это происходит, когда пользователь не может делать stat() для файлов (для чего требуются разрешения на выполнение), но может читать записи в каталоге (для чего требуется доступ для чтения в каталоге). Таким образом, вы получаете список файлов в каталоге, но не можете получить информацию о файлах, потому что их невозможно прочитать.:) Если у вас есть каталог, который имеет разрешение на чтение, но не выполняется, вы увидите это. Кто-то, вероятно, пытался защитить каталог .ssh неправильно - он должен быть "chmod 0700.ssh/" и принадлежит пользователю, которому принадлежит гомедиар. Скорее всего, кто-то выполнял инструкции по защите файла .ssh, но применил его в каталоге .ssh.:)

Если вы делаете chmod 0600 или 0400 в любом каталоге, вы можете легко воспроизвести это поведение. Добавьте разрешение выполнения в каталог, и он будет работать нормально.