Cómo encontrar la ruta real de un archivo.

0

Estoy intentando acceder a un archivo en mi MacBook Pro a través de una aplicación web que se ejecuta en Tomcat en Eclipse (localhost). Cada vez que intento acceder al archivo recibo la siguiente excepción de IO:

Exception:  /private/var/appname/app_config.txt (No such file or directory)

Este archivo existe y cuando lo uso Apple+I La ventana de información del archivo da esta ubicación:

/private/var/appname

Entonces, ¿por qué la aplicación web obtiene la excepción (No existe tal archivo o directorio)? ¿Cómo obtengo la ruta real si la ventana de información del archivo no es válida a través de la aplicación web?

EDITAR

Los permisos sobre el expediente en preguntas son:

-rw-r--r--

donde el propietario es el contexto de usuario en el que se ejecuta la aplicación web, que se determina al ingresar lo siguiente en el shell:

ps axu -w

Permisos en el directorio. appname son como tales:

drwxr-x---   

donde, nuevamente, el propietario es el contexto de usuario bajo el que se está ejecutando la aplicación web.

Y finalmente, el directorio. var tiene permisos:

drwxr-xr-x

con root como propietario.

enter image description here

Además, eliminando private de la ruta da como resultado exactamente la misma excepción, sin la private en el camino:

Exception:  /var/appname/app_config.txt (No such file or directory)
Roy Hinkley
fuente
Compruebe el archivo de registro en /private/var/log/system.log, y si está utilizando Apache con Tomcat, es posible que deba configurarlo.
l'L'l
@ l'L'l Es solo Tomcat 7: no hay un servidor web Apache.
Roy Hinkley

Respuestas:

1

¿Con qué identidad de usuario se está ejecutando la aplicación Tomcat / Apache? Si bien puede leer el archivo con su cuenta, si el servidor de aplicaciones se ejecuta como un usuario con derechos limitados o en un entorno chroot'd, no podrá ver el archivo. Descubre la cuenta de usuario con la que se ejecuta y prueba su Ingrese a esa cuenta y vea si puede leer el archivo.

JBRWilkinson
fuente
0

Lo primero que comprobaría es que Tomcat o Eclipse o lo que sea que está intentando acceder al archivo con suficientes derechos para la operación. No es raro que las aplicaciones informen "archivo no encontrado" cuando lo que intentan decir es "No puedo acceder a la cosa".

Terminal abierta, hacer

cd / private / var / appname

y entonces

ls -al

y ver quién es el propietario y qué modo reporta el archivo, y luego tomarlo desde allí.

Dado que / private / var / appname no es legible por todos, lo agregaría a los permisos y vería si eso hace una diferencia.

chmod a+r /private/var/appname 
cucu8
fuente
Para estar totalmente seguro de que lo haría -la@ para obtener el ACL en su caso también. Esto es casi seguro que es un problema de permisos en el directorio o en el propio archivo.
Tony Williams
@ TonyWilliams Sin duda, es probable que los permisos. Pero, estoy luchando con qué ponerlos en. Por favor revise mis ediciones que incluyen los permisos actualmente.
Roy Hinkley
@Android Addict - Puede ser que el HFS esté jugando con nosotros. ¿Puedes abrir el archivo desde una aplicación diferente, dice TextWrangler o algo así? ¿Por qué no permitir momentáneamente acceso completo al archivo a través de sudo chmod 777?
cucu8
Sí. TextEdit / TextWrangler funciona bien. Consideraré abrirlo solo para determinar que otra cosa no saldrá mal. Gracias por el consejo.
Roy Hinkley
Si puede abrirlo con un editor, debemos concluir que el problema es con Java / Eclipse. Me temo que debo dejarte aquí, pues mi experiencia es cero en esa área (bueno, puedo intentar extraer algo de los archivos de registro ... pero eso es todo) Buena suerte.
cucu8