2009-02-12 7 views
50

que estoy haciendo una lista dir en mi directorio home .ssh que me da un resultado extraño:questionmarks en Linux dirlisting

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

Lo extraño es, que esto sólo sucede para un usuario y sólo en este directorio específico Si hago el ls después de un su -l, todo funciona como se esperaba. Otra cosa extraña es que mi xterm muestra el listado de directorios en una fuente roja parpadeante. ¿Alguna idea de lo que está causando esto?

thx!

Editar:
Aquí está el listado de directorio como 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 

estoy usando ext3.

Edit2:
Thx por las respuestas, pero todavía conseguir esto:

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

¿Este usuario tiene una fuente loca o una fuente de terminal extraña? – gnud

+0

no es una fuente "normal", es decir, nada de UTF8 ni nada – SDD

+1

¿Podría actualizar edit2? No tiene ningún sentido, estás cambiando el modo incorrecto (no se ejecuta) y luego enumerando un directorio diferente ... – wds

Respuesta

90

Eso sucede cuando el usuario no puede hacer una estadística() en los archivos (que requiere permisos de ejecución) , pero puede leer las entradas del directorio (que requiere acceso de lectura en el directorio). Entonces obtienes una lista de archivos en el directorio, pero no puedes obtener información sobre los archivos porque no se pueden leer. :) Si tiene un directorio que tiene permiso de lectura pero no se ejecuta, verá esto. Alguien probablemente intentó proteger incorrectamente el directorio .ssh: debería ser "chmod 0700 .ssh /" y propiedad del usuario que posee el homedir. Lo más probable es que alguien haya seguido las instrucciones para proteger un archivo .ssh pero lo haya aplicado a un directorio .ssh. :)

Si realiza un chmod 0600 o 0400 en cualquier directorio, puede reproducir fácilmente este comportamiento. Agregue permiso de ejecución al directorio, y funcionará bien.

+0

thx, eso resolvió el problema :) – SDD

+0

Esta solución no nos funcionó porque el usuario raíz no podía operar el archivo. ¿Alguna sugerencia? [root @ lxxxxx1 TeamSite] # chmod 0777 privada chmod: no se puede acceder 'privado ': No existe el fichero o directorio [root @ lxxxxxx1 TeamSite] # chmod -R 0777 privada chmod: no se puede acceder a 'privado ': No existe ese archivo o directorio – TroyP

+0

Troy: esa comilla simple final es impar, lo que me indica que puede tener algún tipo de nombre de archivo extraño en el sistema de archivos o un problema diferente. Haga una pregunta por separado acerca de eso, por favor. – dannysauer