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