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). Cuando 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 uso Apple+I , la ventana de información del archivo proporciona 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?

EDIT

Los permisos en el archivo en las 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 ingresando lo siguiente en el shell:

ps axu -w

Los permisos en el directorio appname son como tales:

drwxr-x---   

donde, nuevamente, el propietario es el contexto de usuario en el que se ejecuta la aplicación web.

Y finalmente, el directorio var tiene permisos:

drwxr-xr-x

con la raíz como propietario.

Además, al eliminar private de la ruta se obtiene exactamente la misma excepción, sin el private en la ruta:

Exception:  /var/appname/app_config.txt (No such file or directory)
    
pregunta Roy Hinkley 23.01.2014 - 21:40

2 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. Averigüe la cuenta de usuario con la que se está ejecutando e intente su ing a esa cuenta y luego vea si puede leer el archivo.

    
respondido por el JBRWilkinson 24.01.2014 - 23:56
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"

Abrir Terminal, hacer

  

cd / private / var / appname

y luego

  

ls -al

y vea quién es el propietario y en qué modo informa el archivo, y luego retírelo desde allí.

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

chmod a+r /private/var/appname 
    
respondido por el cucu8 24.01.2014 - 00:00

Lea otras preguntas en las etiquetas