El directorio no oculto no se muestra en Explorer, pero el programa que lo creó puede acceder a él

26

Estoy usando IMAPSize para hacer una copia de seguridad de mis buzones. El proceso simplemente descarga el contenido de su buzón en .emlarchivos en su disco. De todos modos, el primer buzón del que hice una copia de seguridad aparece como espero. Sin embargo, el siguiente no se muestra en el Explorador y, si lo ingreso en la barra de direcciones, me dice que no existe.

Sin embargo, IMAPSize insiste en que los archivos están allí. (Un montón de escritura en disco estaba siendo realizada durante la operación.) Por otra parte, el directorio no aparece en el cuadro de diálogo directorio de Windows y - como no tengo herramientas GNU instaladas - se nota en ls(pero no en el nativo dir). No puedo cdingresar al directorio, pero lsparece que puedo acceder a él (y, de hecho, los directorios y archivos que espero que estén allí).

ventana de símbolo del sistema que muestra los listados

También tenga en cuenta que la marca de tiempo y el tamaño del archivo de backup.dbson diferentes en el diry ls -lde salida.

En resumen: ¿qué está pasando aquí y cómo lo soluciono?

Xophmeister
fuente
1
La única diferencia notable que veo es que ls -lmuestra una cantidad peculiar de enlaces a los directorios y archivos "ocultos" ... No sé por qué, ni cómo se interpreta un enlace en tierra NTFS.
Xophmeister el
... Solo para confirmar: puedo acceder a los datos en los archivos "ocultos", desde la línea de comandos, usando cat(otro GNU coreutil). Una vez más, sin embargo, las herramientas nativas de Windows (p. Ej. type) Ni siquiera pueden encontrar el archivo.
Xophmeister

Respuestas:

63

Déjame adivinar: el programa que creó el archivo, y también las utilidades GNU, no se están ejecutando como administrador.

Primero, algo de historia. En los días de Windows XP, muchos programas asumían que siempre se ejecutarían como administradores, y escribirían en lugares como C:\Windowsy C:\Program Files (x86)con gran abandono. Con Vista, Microsoft trató de hacer menos administradores de personas, pero los usuarios estándar no pueden escribir en esos lugares. Necesitaban esos programas dudosos para seguir trabajando (o de lo contrario la gente no actualizaría). Entonces, introdujeron una característica mágica llamada virtualización UAC .

Los programas que se ejecutan como usuarios estándar pueden pensar que sus escrituras en ubicaciones importantes tuvieron éxito, pero en realidad, Windows retiró los datos en una ubicación por usuario. Cuando esos programas buscan archivos en un directorio, Windows verifica si hay archivos en la tienda virtual de ese lugar y, de ser así, los agrega a la lista del directorio. (Existe una funcionalidad equivalente para el Registro).

Parece que su programa de correo intentó escribir en un lugar debajo Program Files (x86)mientras se ejecutaba como un usuario normal. La escritura fue redirigida, por lo que en realidad no fue a ese lugar. El programa aún puede verlo, porque Windows mantiene la ilusión. Explorer no lo ve porque anuncia al sistema operativo que se comporta bien y, por lo tanto, no necesita redireccionamiento. El comando del símbolo del sistema dirno es un programa (es solo una característica de cmd.exe), por lo que también se considera "en el conocimiento" y, por lo tanto, no se muestran los archivos de compatibilidad. lses un programa que, evidentemente, no está al tanto, por lo que puede ver los archivos de compatibilidad.

Encontrarás tu archivo aquí:

%LOCALAPPDATA%\VirtualStore\Program Files (x86)\IMAPSize\backup

Mientras hurga VirtualStore, es posible que se sorprenda de qué programas no se comportan bien y necesitan la red de seguridad de virtualización.

Si desea detener la redirección, ejecute el programa como administrador o guarde sus copias de seguridad en una ubicación en la que pueda escribir sin privilegios de administrador.

Ben N
fuente
16
Y aquí pensé que conocía Windows. O bien, esta es una broma tonta de abril bien hecha, o aprendí algo importante hoy. gracias, @Ben N!
Aganju
3
@Aganju Hace unos meses tuve que ayudar a un usuario de Windows a crear un par de claves para WinSCP. Y esos se volvieron invisibles de la misma manera que se describe en la pregunta. En ese momento planteé la hipótesis de una explicación más o menos la misma que se da en esta respuesta. No me molesté en verificar mi hipótesis, porque el problema se resolvió colocando el archivo en el directorio de inicio de los usuarios. Pero al menos puedo confirmar que esta respuesta no me parece una broma.
kasperd
3
¡Bueno, estaré condenado! Ahí están todos. Ese es un comportamiento extraño , incluso si está destinado. ¡Pensé que tenía un error en el sistema de archivos! ... Esto también explicaría por qué aparece mi primera copia de seguridad del buzón: El programa se ejecutó primero desde el instalador ("¿Desea ejecutar tal y tal ahora?"), Que lo habría elevado a tener privilegios de administrador; mientras que la ejecución "oculta" fue como el usuario local.
Xophmeister el
1
@Aganju, supongo que nunca usaste mucho Vista. Tenía una función para mostrarle archivos virtualizados en Explorer; porque el problema fue lo suficientemente común durante algunos años. Cuando llegó Win7, el software más utilizado dejó de suponer que podía escribir en subcarpetas de su directorio de instalación; y la función se ha hecho significativamente menos visible o posiblemente eliminada en las versiones más recientes de Windows.
Dan Neely
44
@Xophmeister Es una compensación. Como se señaló en la respuesta, la escritura de software en su propio directorio de aplicaciones era apenas común antes de Vista. Este es un agujero de seguridad masivo, por lo que tuvo que resolverse. Las alternativas eran 1) evitar la escritura y romper todas las aplicaciones, 2) usar la virtualización para guardar los archivos en una ubicación segura. 1) obviamente es insostenible y está muy en contra del SOP de Microsoft, y al final solo llevaría a todos a ejecutar todo bajo administrador como antes. Puede ser confuso, pero sigue siendo probablemente la mejor opción. No escriba en directorios peligrosos.
Luaan