Только вопросительные знаки в Linux dirlisting
Я делаю список dir в моем .ssh home dir, который дает мне странный результат:
ls -lsa .ssh/
total 0
? ?--------- ? ? ? ? ? . ·
? ?--------- ? ? ? ? ? .. ·
? ?--------- ? ? ? ? ? authorized_keys ·
странно то, что это происходит только для одного пользователя и только в этом конкретном каталоге. Если я делаю ls после su-l, все работает так, как ожидалось. Еще одна странная вещь заключается в том, что мой xterm показывает список dir красным мигающим шрифтом!
Есть идеи, что заставляет это происходить?
спасибо!
Edit:
Вот список dir как корень:
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:
Thx для ответов, но я все равно получаю это:
chmod -R 600 /home/sdd/.ssh
ls -lsan _ssh.old/
total 0
? ?--------- ? ? ? ? ? .
? ?--------- ? ? ? ? ? ..
? ?--------- ? ? ? ? ? authorized_keys
1 ответ:
это происходит, когда пользователь не может выполнить stat() для файлов (что требует разрешений на выполнение), но может читать записи каталога (что требует доступа для чтения в каталоге). Таким образом, вы получаете список файлов в Каталоге, но не могу получить никакой информации о файлах, потому что они не могут быть прочитаны. :) Если у вас есть каталог, который имеет разрешение на чтение, но не выполняется, вы увидите это. Кто-то, вероятно, пытался защитить .каталог ssh неверно-он должен быть " chmod 0700 .СШ/" и принадлежит пользователю, который владеет множеством файлов. Скорее всего, кто-то следовал инструкциям по обеспечению безопасности А.ssh file но применил его к a .каталог СШ. :)
Если вы делаете chmod 0600 или 0400 в любом каталоге, вы можете легко воспроизвести это поведение. Добавьте разрешение execute в каталог, и он будет работать нормально.
Comments